javascript - Starter tsconfig.json 对于不使用打字稿的纯 JavaScript 项目来说是最松散/松散的?
问题描述
我很难找到一个样本/启动器 tsconfig.json 文件,它是最不严格/最松散/松散的选项。我有一个大型 javascript 项目,我真的对修复大量打字稿错误不感兴趣,但是,如果我的同事愿意,我想允许他们编写打字稿。
我们正在使用 create-react-app,所以我可以使用这个TSC_COMPILE_ON_ERROR
标志来制作它,这样打字稿错误就不会影响正常使用。(“当设置为 true 时,即使存在 TypeScript 类型检查错误,您也可以运行并正确构建 TypeScript 项目。这些错误在终端和/或浏览器控制台中打印为警告。”)
到目前为止,我只知道我希望allowJs: true
typescript 在 .js/.jsx 文件上运行。
所以我想启用打字稿,但我想从最少数量的打字稿错误+警告开始。随着我们的发展,我们可以解决我们看到的这些问题,并逐渐启用更严格的选项。
更新:发现了一个类似的问题,不完全相同,但有些人可能认为它是重复的:TypeScript - 可能禁用类型检查?
我尝试使用这个 tsconfig.json 文件......这是几个月前我拥有的旧文件,并进行了一些修改:
{
"compilerOptions": {
"target": "es5", // cra default
"lib": [
"es6", // old cra default?
"dom", // cra default
"dom.iterable", // cra default
"esnext" // cra default
],
"allowJs": true, // cra default
"skipLibCheck": true, // cra default
"esModuleInterop": true, // cra default
"allowSyntheticDefaultImports": true, // cra default
"strict": false, // cra default
"forceConsistentCasingInFileNames": true, // cra default
"module": "esnext", // cra default
"moduleResolution": "node", // cra default
"resolveJsonModule": true, // cra default
"isolatedModules": true, // cra default
"noEmit": true, // cra default
"jsx": "react", // cra default
"sourceMap": true, // old cra default?
"checkJs": true,
"noImplicitReturns": false, // old tsconfig was set to true
"noImplicitThis": true,
"noImplicitAny": false, // old tsconfig was set to true
"strictNullChecks": false, // old tsconfig was set to true
"suppressImplicitAnyIndexErrors": true,
"noUnusedLocals": false,
"noUnusedParameters": false,
"types": ["jest"],
"disableSizeLimit": true,
"downlevelIteration": true,
"allowUmdGlobalAccess": true,
"allowUnreachableCode": true,
"allowUnusedLabels": true,
"alwaysStrict": false, // default
"newLine": "lf"
},
"awesomeTypescriptLoaderOptions": {
"useBabel": true,
"babelCore": "@babel/core"
},
"include": ["src"], // cra default
"exclude": ["node_modules"] // from old tsconfig
}
我陷入了这样的错误:
Property 'languageSettingString' does not exist on type 'Window & typeof globalThis'. TS2339
1602 | action.data.data.account.locale !== state.locale
1603 | ) {
> 1604 | window.languageSettingString = action.data.data.account.locale
| ^
1605 | return {
1606 | ...state,
1607 | locale: action.data.data.account.locale,
在我调用 redux action/prop 的地方this.props.setTaskValue
,我有这个错误......这显然在 reduxconnect
调用的同一个文件中。
Property 'setTaskValue' does not exist on type 'Readonly<{}> & Readonly<{ children?: ReactNode; }>'.ts(2339)
解决方案
推荐阅读
- node.js - 如何从nodejs接收reactjs上的cookie
- php - 为什么这个 ResourceCollection 不起作用?
- python-3.x - 使用可调用 WriteToBigQuery 的表参数时,无法将 Python 数据流模板保存到存储桶
- excel - 如何遍历列的所有行以使用 strTo 发送多封电子邮件?
- database - Oracle物化视图设置
- elasticsearch - Bucket_selector 聚合和大小。优化
- json - Swift解析JSON,嵌套数组
- r - 如何用 NA 填充空的 0 xn tibble
- grpc - gRPC 中的高吞吐量低延迟一元调用指南
- react-native - 如何修改 DrawerNavigatorItems 项