跳至主要内容

故障排除手册:tsconfig.json

您可以在 TypeScript 文档中找到所有编译器选项新的 TS 文档还对每个选项的功能进行了注释。 这是我用于应用程序(而非库 - 对于库,您可能希望查看我们在tsdx中使用的设置)的设置。

{
"compilerOptions": {
"incremental": true,
"outDir": "build/lib",
"target": "es5",
"module": "esnext",
"lib": ["DOM", "ESNext"],
"sourceMap": true,
"importHelpers": true,
"declaration": true,
"rootDir": "src",
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"allowJs": false,
"jsx": "react",
"moduleResolution": "node",
"baseUrl": "src",
"forceConsistentCasingInFileNames": true,
"esModuleInterop": true,
"suppressImplicitAnyIndexErrors": true,
"allowSyntheticDefaultImports": true,
"experimentalDecorators": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "build", "scripts"]
}

您可以在此处找到更多 推荐的 TS 配置

如果有更好的 React 推荐选择,请提 issue 并进行讨论。

选定的标志及其原因

  • esModuleInterop:禁用命名空间导入(import * as foo from "foo")并启用 CJS/AMD/UMD 样式导入(import fs from "fs"
  • strictstrictPropertyInitialization 强制您初始化类属性或明确声明它们可以是 undefined。您可以使用明确赋值断言来选择退出此选项。
  • "typeRoots": ["./typings", "./node_modules/@types"]:默认情况下,TypeScript 在node_modules/@types和父文件夹中查找第三方类型声明。您可能希望覆盖此默认解析,以便可以将所有全局类型声明放在一个特殊的typings文件夹中。

编译时间随代码库的大小线性增长。对于大型项目,您需要使用 项目引用。请参阅我们的 高级 速查表以获取相关说明。