web-dev-qa-db-ja.com

TypeScript:モジュールタイプ定義を探すディレクトリを指定します

Heyho、

TypeScriptコードで一部のjavascriptライブラリを使用したいのですが、npmには入力がありません。だから私は自分でタイピングを書いて、ソースツリーのdefinitionsディレクトリに入れました。ただし、TypeScriptでそれらのモジュールをそのディレクトリで検索できませんでした。

私のディレクトリ構造は次のようになります:

+-node_modules
| |
| +-moduleA
| |
| +-moduleB
|
+-src
| |
| +-definitions
| | |
| | +-moduleA.d.ts
| | |
| | +-moduleB.d.ts
| |
| +-ts
|   |
|   + ... all TypeScript code ...
|
+-tsconfig.json

definitions-ディレクトリにモジュールを含めてみました

  • include
  • files
  • typeRoots
  • paths

しかし、どれもうまくいきませんでした。

TypeScriptにそれらの入力を含める方法を誰かに教えてもらえますか?

PS:TypeScriptモジュールの処理がなぜそれほど複雑なのですか?

9
jsf
{
  "compilerOptions": {
    "typeRoots": [
      "./node_modules/@types",
      "./some-custom-lib"
    ]
  }
}

typeRoots文字列配列はそのためのものです。通常の「node_modules/@ type」に加えて、カスタムメイドの型付けフォルダーを追加します。

7
qballer

triple-slash Directives でそれらを含めて、コンパイラにそれらを使用するように指示できます。

例えば。 index.d.tsファイルを作成し、定義フォルダーに配置します。そこで、あなたが作ったすべてのカスタムタイピングを含めることができます。こんな感じ

/// <reference path="react.patch.d.ts" />
/// <reference path="custom-typings.d.ts" />

タイプファイル内の最初の行は

/// <reference types="nameOfIt" />

次に、tsconfig.jsonfilesフィールドにそれらを含めます。

"files": [
    "definitions/index.d.ts"
  ]
5
Murat Karagöz