2017-03-17 5 views
0

簡単な質問 - .d.tsファイルを持たない新しいnpmライブラリをインポートするたびに、コンパイルのためにたくさんの行を含むスタブ.d.tsファイルを作成しています。カスタム.d.tsファイルを作成せずに外部ライブラリをインポートするにはどうすればいいですか、プロジェクト全体に対してnoimplicitanyをオフにするにはどうすればよいですか?

function SomeFunctionINeed(...args: any[]): any 

私たちはTSが大好きですが、これは現在最大のハングアップです。ライブラリ全体をインポートして暗黙的にanyを許可するにはどうすればいいですか?あなたが行うことができます

+1

バージョンを使用していますか? 2.1または2.2では、npmライブラリをインストールすると自動的に 'any'と入力されます。 – unional

+0

@unionalはい - プロジェクト全体に対してnoimplicitanyを無効にすることなく、どうすればそれを動作させることができますか?私はそれらのライブラリのためだけに "any"型を許可し、残りのコードについてはnoimplicitanyの力を失わないようにします。 –

+0

[typescriptファイルで定義ファイルを持たないjsライブラリをインポートする方法]の複製可能性(http://stackoverflow.com/questions/22842389/how-to-import-a-js-library-without-definition-file-in -typescript-file) –

答えて

1

これを回避しながらnoImplicityAnyの利益を維持するために、:

declare module '*'; 

は、このファイルを作成し、tsconfig.jsonに追加します。例えば:

// custom-typings/any-modules.d.ts 
declare module '*'; 

// tsconfig.json 
{ 
    "include": [ 
    "custom-typings" 
    ] 
} 

オリジナル議論:活字体のhttps://github.com/Microsoft/TypeScript/issues/13348

+0

Wow - 'declare module '*';'作品!このソリューションをしばらくお待ちしております、ありがとうございます。 –

+0

ここでは、*の代わりに 'declare module 'someModule';'を使用していることに注意してください。 *、* all *モジュールは何らかの問題を引き起こすタイプがないものとみなされます(タイプがこのlibで利用可能かどうかを決して確認しないなど)。モジュールごとに追加しないタイプを指定したい。 –

関連する問題