故障排除手册: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"
)strict
:strictPropertyInitialization
强制您初始化类属性或明确声明它们可以是 undefined。您可以使用明确赋值断言来选择退出此选项。"typeRoots": ["./typings", "./node_modules/@types"]
:默认情况下,TypeScript 在node_modules/@types
和父文件夹中查找第三方类型声明。您可能希望覆盖此默认解析,以便可以将所有全局类型声明放在一个特殊的typings
文件夹中。