Typescript 如何为不在@types中的键入配置tsconfig.json?

Typescript 如何为不在@types中的键入配置tsconfig.json?,typescript,typescript-typings,Typescript,Typescript Typings,我正在使用一个tsconfig.json文件来指定我想在我的应用程序中使用哪些类型 { "compilerOptions": { "types" : ["node", "lodash", "express"] } } 这将从/node\u modules/@types/node、/node\u modules/@types/lodash和/node\u modules/@types/expres导入打字 我的问题是如何为自包含模块配置打字 我的示例是zone.js包,

我正在使用一个tsconfig.json文件来指定我想在我的应用程序中使用哪些类型

{
   "compilerOptions": {
       "types" : ["node", "lodash", "express"]
   }
}
这将从
/node\u modules/@types/node
/node\u modules/@types/lodash
/node\u modules/@types/expres
导入打字

我的问题是如何为自包含模块配置打字

我的示例是zone.js包,它同时具有库代码和类型定义

  • ./node_modules/zone.js/dist/zone.js
  • ./node_modules/zone.js/dist/zone.min.js
  • /node\u modules/zone.js/dist/zone.js.d.ts

我应该在tsconfig.json文件中放入什么来包含
zone.js.d.ts

您可以将该文件放在任何地方,但您需要告诉编译器,可以将其添加到
tsconfig.json
中,也可以作为
/
文件。对于
tsconfig
添加
include
字段:

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

只需将
zone.js
添加到
tsconfig.json
中的
类型

{
   "compilerOptions": {
       "types" : ["node", "lodash", "express", "zone.js"]
   }
}
请注意,您不必像这样包含所有类型。自动包含
@types/*
包中的类型定义

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

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

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

或者,如果您想在整个项目中使用它,您可以在项目的根目录中添加一个
index.d.ts
,并在那里放置int引用。

将其添加到
类型
数组中是有效的。奇怪的是,我第一次尝试它时,它对我不起作用。我想我的编辑落后了。