- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我读过 this answer关于如何扩展内置类型,但它只讲述了故事的一半。我们如何告诉 TypeScript 在哪里可以找到我们的全局定义?
我已经创建了一个文件,
interface HTMLElement {
computedStyleMap(): any
}
然后尝试将其包含在 include
中(不确定这是否是最佳选择):
{
"compilerOptions": {
...
},
"files": [
"src/index"
],
"include": [
"src/**/*.d.ts"
],
"exclude": [
"node_modules"
]
}
但我的 VS Code 仍然报错:
即使通过 awesome-typescript-loader 编译时没有错误或警告.
那么我需要做什么才能使语言服务正常运行?配置 tsconfig 以读取我所有的 *.d.ts
的最佳方法是什么?文件?
添加
///<reference path="cssom.d.ts"/>
文件的顶部同时满足编译器和语言服务,但我真的不想添加这些 <reference>
它无处不在,因为我正在扩展一个内置/全局类型。
最佳答案
我想你想要 "typeRoots"
tsconfig 编译器选项。我认为你可以通过将你的文件包含在 typeRoots
数组
"typeRoots": [
"src/cssom.d.ts"
]
或者您可以简单地在 typeRoots 数组中包含一个文件夹的路径,以包含该文件夹中的所有类型。
顺便说一句,我只知道这个是因为 typescript-starter
项目会自动为您配置一个默认的 typeRoots 文件夹,并说明如何使用它。很有帮助。
我想值得注意的是 typescript 文档特别指出 typeRoots
选项应该包含文件夹路径列表,因此它可能指向特定的 *.d.ts
文件无法工作。
正如@mpen 所指出的,包括您自己的typeRoots
将覆盖默认的node_modules/@types
typeRoot。因此,您还需要特别包含该 typeRoot:
即"typeRoots": ["node_modules/@types", "src/types"]
关于typescript - 如何让 TypeScript 语言服务不提示全局类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51994617/
我是一名优秀的程序员,十分优秀!