我希望将来使用TypeScript ,但是目前,我选择在Create React App中安装TypeScript。 (稍后,我将返回并添加类型)
因此,我想禁用所有类型检查。
现在,当我做这样的事情时:
<PlaceSearchBar
placeSearchChanged={this.placeSearchChanged}
/>
class PlaceSearchBar extends React.Component {
...
}
我得到一个错误:
Type error: Type '{ placeSearchChanged: (place: any) => void; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<PlaceSearchBar> & Readonly<{ children?: ReactNode; }> & Readonly<{}>'.
Property 'placeSearchChanged' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<PlaceSearchBar> & Readonly<{ children?: ReactNode; }> & Readonly<{}>'. TS2322
显然,我需要在React.Component<placeSearchChanged:function>
中声明类型或类似的类型。
我认为这很烦人,我想禁用tsconfig.json
中的所有检查。
如何禁用所有检查(但仍安装TypeScript,以防将来使用)?
这是我当前的tsconfig.json:
{
"compilerOptions": {
"target": "es6",
"lib": [
"dom",
"dom.iterable",
"esnext",
],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": false,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "preserve",
"noImplicitAny": false,
},
"include": [
"src"
]
}
答案 0 :(得分:22)
没有类型的Typescript是Javascript。
在没有Typescript的情况下启动您的项目,并在准备就绪时进行转换。
以<any>
开头不是一个好习惯,我认为这没有任何意义。
答案 1 :(得分:11)
将此添加到您的tsconfig.json
:
{
"compilerOptions": {
...
"checkJs": false
...
}
}
并暂时坚持.js
/ .jsx
文件。仅在准备使用类型时,才使用.ts
/ .tsx
扩展名。
如果您希望逐行排除错误,则可以使用// @ts-ignore
注释。
答案 2 :(得分:4)
答案 3 :(得分:0)
Typescript的USP在编译时进行类型检查。最终可以编译为javascript。从没有打字稿开始。如果需要进行重构,可以始终将其包括在项目中。
https://www.typescriptlang.org/docs/handbook/migrating-from-javascript.html
答案 4 :(得分:-1)
为什么比使用Typescript?您粘贴的组件代码的文件类型是什么?如果是js文件,则可以将allowJs
更改为false
。这将告诉编译器不要检查js文件。
答案 5 :(得分:-2)
我同意nologin,这样做是没有意义的,但是,如果您确实希望有几种方法可以想到,这里有一些建议:
将此评论添加到文件/* tslint:disable */
从tslint.json中排除代码文件夹(可能也需要在tsconfig.json上完成
{
// some linting options
linterOptions: {
exclude: ['src/**','components/**'],
}
}
只需用空对象替换tslint.json和tsconfig.json文件