如何为不在@types中的打字配置tsconfig.json?

时间:2018-02-09 10:47:46

标签: typescript typescript-typings

我使用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

2 个答案:

答案 0 :(得分:2)

您可以将文件放在任何位置,但是您需要通过在tsconfig.json///<reference>中添加文件来告诉编译器。对于tsconfig添加include字段:

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

答案 1 :(得分:1)

您只需将zone.js添加到types中的tsconfig.json

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

请注意,您不必包含此类所有类型。自动包含@types/*包中的类型定义。

因此,您可以删除tsconfig.json中的类型声明,并自动引用所有@types/*个包。

为了让zone.js正常工作,您可以将其包含在一个文件中,如下所示:

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

或者,如果您希望它在整个项目中可用,您可以在项目的根目录中添加index.d.ts并在那里添加引用。