2017-01-28 16 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/" 
    ] 
} 

PS: 上記のエラーは、ターミナルからそれを削除しようとしたときです。それが指すように、任意のエラーが表示されないVisualStdioCodeに私はVisualStdioCodeを使用しています 、

/パス//VisualStdioCode/Visual Studioのに Code.app/Contents/Resources/app/extensions/typescript/ node_modules/typescriptです/ libに/ lib.dom.d.ts

EDIT(解決): ここでの問題は、この質問の目的はES6非明示的に使用よりも、重複するインポートソースを検出することでしたcannot redeclare block scoped variable (typescript) よりもわずかに異なっていました私たちのためにそれを原子的に解決するための割り当て。 ここでの解決策は、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」タイピングを含めることを意味するものではありませんでしたか?

+0

ありがとう、ありがとうございました。 lib/domで十分であり、node_modulesの追加は冗長です。私はいくつかの他のusecaseのためにサーバー上にdomが必要です。 – ishandutta2007

関連する問題