7
私はそれらを持っていないパッケージのためのタイピングを提供しようとしている:カスタム.d.tsファイルはどこに置く必要がありますか?
error TS7016: Could not find a declaration file for module 'inputmask-core'. './node_modules/inputmask-core/lib/index.js' implicitly has an 'any' type.
Try `npm install @types/inputmask-core` if it exists or add a new declaration (.d.ts) file containing `declare module 'inputmask-core';`
私はtypescriptです2.4.2でのWebPACKにTS-ローダーを使用している、と私はに設定し、次のタイプのルーツを持っていますtsconfig.json:
"typeRoots": [
"./node_modules/@types",
"./src/client/types"
]
私はnode_modules/@types
にパッケージ構造を模倣しようとした:
src/client/types
|--inputmask-core
|--index.d.ts
以下でに:
declare class InputMask {}
export default InputMask;
しかし、エラーはまだあります。私は間違って何をしていますか?これらのカスタム.d.tsファイルはどこに置く必要がありますか?
node_modules/@types
と他のタイプのルートの違いは何ですか?なぜTypeScriptはそれらを別々に扱いますか?
'node_modules/@ types'は、宣言が組み込まれていないパッケージの型情報を含むサードパーティパッケージを保持するために使用されます。それは、宣言パッケージを直接インポートするのではなく、タイプを含むパッケージにオーバーレイされているように見えます。 '' typeRoots "'は、この特別な方法で扱われるディレクトリをカスタマイズしたり、ディレクトリを追加したりすることができます。 –
@AluanHaddad - "typeRoots"内の別のディレクトリもこの特殊な方法で扱われると、いくつかのパッケージのディレクトリを 'node_modules/@ types'から別のtypeRootに移動するとコンパイルが中断されるのはなぜですか? – Rogach
ここで十分な情報がありません。 tsconfig、モジュール解決などはありませんでした。あなたが終わったのは_外部のモジュールです_とにかく解像度の意味が異なります。特に、ファイルのパスによって解決されません。 –