2017-04-24 3 views
1

私のコンパイラでnoImplicitAnyフラグを有効にします。 私の問題は、私はlodash/fpを使用していて、今のところタイピングはないということです。TypeScriptはJavaScriptソースでnoImplicitAnyを使用します

したがって、コンパイラはlodash/fpの定義ファイルが不足していると不平を言っています。

暗黙的に任意の外部jsファイルを許可する方法はありますか?またはnode_modulesのようなサブディレクトリをホワイトリストに登録するには?

答えて

0

これを回避する方法は、入力しないモジュールを使用するモジュールを宣言するファイルを作成することです。例えば、私はmodules.tsというファイルを作成し、そこに使用したいモジュールを単純にdecalreします:declare module 'name-of-module'。今では私の非入力モジュールを使用したいファイルで、modules.tsをインポートしてから、import * as構文を使用して使用したいモジュールをインポートすることができます。これは暗黙的なものから明示的なものへの変更ですが、これらのモジュールの入力はもちろんありません。単にそれらを使用することができます。

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "noResolve": true, 
    "sourceMap": true, 
    "noImplicitAny": true, 
    "removeComments": true, 
    "experimentalDecorators": true 
    }, 
    "exclude": [ 
    "node_modules" 
    ] 
} 

これは、彼らが最も可能性が高い、すでにJavaScriptのだとJavaScriptにコンパイルされているからnode_modulesフォルダを防ぐ必要があります:あなたは以下を持っている必要があり、あなたのtsconfig.jsonで

0

「ファイル」との両方の未指定のままにしている「が含まれる」、コンパイラのデフォルトは使用して除外されたものを除く含むディレクトリとサブディレクトリ内のすべての活字体(.TS、.d.tsと.tsx)ファイルを含むとする場合「除外」プロパティ。

See the main TypeScript site here

+0

は、そのモジュールが持つかもしれない任意のタイピングを否定ではないでしょうか? –

+1

tsconfigはコンパイル時のみ有効です。これは、JSへのコンパイル時にnode_modulesフォルダを無視するようにコンパイラに指示します。 –

関連する問題