tsconfig
TypeRoots
我们通常使用的类型包都是 @types
域下的。它们都是由 DefinitelyTyped 这个组织贡献的,然而有一些三方包例如 Figma 插件的类型包就是 @figma/plugin-tyings
,此时TypeRoots
选项就可以派上用场了。
默认情况下,所有可见的“ @types ”包都包含在您的编译中。任何封闭文件夹的 node_modules/@types 中的包都被认为是可见的。例如,这意味着 ./node_modules/@types/ 、 ../node_modules/@types/ 、 ../../node_modules/@types/ 等中的包。
如果指定了 typeRoots ,则只包含 typeRoots 下的包。例如:
{
"compilerOptions": {
"typeRoots": ["./typings", "./vendor/types"]
}
}
我在开发 figma 插件的时候,由于 figma 官方的类型声明在 @figma 的包里面,和一般情况下使用 @types 的情况不符合,所以增加此属性,但是由于增加了这个属性后,只有 typeRoots 里面的文件会被视作是类型文件,所以需要将 DTS 文件加入进来
Includes
指定要包含在程序中的文件名或模式数组。这些文件名相对于包含 tsconfig.json
文件的目录进行解析。
{ "include": ["src/**/*", "tests/**/*"] }
CompilerOptions
Lib
TypeScript 包括一组默认的内置 JS API 类型定义(如 Math
),以及浏览器环境中的类型定义(如 document
)。 TypeScript 还包括用于匹配您指定的 Math
的较新 JS 功能的 API;例如,如果 document
是 ES6
或更新的版本,则 Map
的定义可用。
一般情况下不许需要改变,但是
- 如果运行时平台不是浏览器
- 如果运行时平台不提供更高级的语法
ResolveJsonModule
允许解析 json
文件,这在 node 项目中比较常见。
ForceConsistentCasingInFileNames
区分文件大小写,在和 windows 合作的时候非常有用