2017-01-28 2 views
0

내가 app.ts 나는 다음과 같은 오류가 모든 글로벌 수입과 수입 수입은 어떻게 계산합니까?

const crypto = require('crypto'); 

의 시작 부분에 다음 줄을 추가 할 때

이 가

블록 범위의 변수 '암호'를 재 선언 할 수 없습니다

가 보인다 이것은 내 tsconfig.json의 모양입니다.

{ 
    "compilerOptions": { 
    "allowJs": true, 
    "outDir": "./dist", 
    "target": "ES6", 
    "module": "commonjs", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": true, 
    "noImplicitAny": false, 
    "strictNullChecks": true, 
    "noUnusedLocals": true, 
    "types": [ 
     "node" 
    ], 
    "typeRoots": [ 
     "./node_modules/@types" 
    ], 
    "lib": ["es2015", "dom"] 
    }, 
    "include": [ 
    "./src/" 
    ] 
} 

추신 : 위의 오류는 터미널에서 추출하려고 할 때 발생합니다. 가 가리키는대로 오류를 표시하지 않습니다 VisualStdioCode에 내가 VisualStdioCode을 사용하고 ,

/경로// VisualStdioCode/비주얼 스튜디오에 Code.app/Contents/Resources/app/extensions/typescript/ 이 질문의 목적은 ES6이 아닌 명시 적으로 사용하는 것보다 중복 가져 오기 소스를 감지했다 cannot redeclare block scoped variable (typescript) 보다 약간 다르게 여기에 문제가 있었다 : node_modules/타이프 라이터는/lib 디렉토리/

EDIT를 (해결) lib.dom.d.ts 할당은 우리를 위해 원자 적으로 해결합니다. 여기 해결책은 libs 또는 node_modules에서 가져오고 여기에 나온 대답과 달리 범위를 가져 오지 않았습니다.

+0

[블럭 범위 변수 (typescript)를 다시 선언 할 수 없습니다] (http://stackoverflow.com/questions/35758584/cannot-redeclare-block-scoped-variable-typescript) –

답변

1

crypto은 이미 브라우저에서 전역 읽기 전용 속성이므로 TypeScript가 사용자가이를 덮어 쓰지 못하도록합니다.

https://developer.mozilla.org/en-US/docs/Web/API/Window/crypto

하지만 commonJS을 사용하고 있기 때문에, 당신은 노드 구축하고 어쩌면 당신은 "LIB"의 "DOM"typings를 포함하는 말은하지 않았다 될 수있다?

+0

고마워, 고마워. lib/dom이면 충분합니다. node_modules에 추가하는 것은 중복됩니다. 다른 용도로 사용하려면 서버에 dom이 있어야합니다. – ishandutta2007