web-dev-qa-db-ja.com

@typesにないタイプのtsconfig.jsonを構成する方法は?

Tsconfig.jsonファイルを使用して、アプリで使用する入力を指定しています。

{
   "compilerOptions": {
       "types" : ["node", "lodash", "express"]
   }
}

これは、./node_modules/@types/node./node_modules/@types/lodash、および./node_modules/@types/expresから入力をインポートします。

私の質問は、自己完結型モジュールの型付けをどのように構成できるかです。

私の例は、ライブラリコードとタイプ定義の両方を含むzone.jsパッケージです。

  • ./node_modules/zone.js/dist/zone.js
  • ./node_modules/zone.js/dist/zone.min.js
  • ./ node_modules/zone.js/dist/zone.js.d.ts

Tsconfig.jsonファイルに何を入れてzone.js.d.tsを含めますか?

7
Steven Liekens

zone.jstsconfig.jsontypesに追加するだけです。

{
   "compilerOptions": {
       "types" : ["node", "lodash", "express", "zone.js"]
   }
}

このようなすべてのタイプを含める必要はないことに注意してください。 @types/*パッケージのタイプ定義は自動的に含まれます。

したがって、tsconfig.jsonの型宣言を削除すると、すべての@types/*パッケージが自動的に参照されます。

zone.jsを動作させるには、次のように単一のファイルに含めることができます。

/// <reference types="zone.js" />

または、プロジェクト全体で使用できるようにする場合は、index.d.tsをプロジェクトのルートに追加して、そこに参照を挿入できます。

4
a-ctor

ファイルはどこにでも配置できますが、tsconfig.jsonに追加するか///<reference>として追加することにより、コンパイラーにファイルを通知する必要があります。 tsconfigの場合、includeフィールドを追加します。

{
    "compileOnSave": false,
    "compilerOptions": {
        ..
    },
    "include": [
        "zone.d.ts",
    ]
}