TypeScriptを使用したい将来的にですが、現時点では、TypeScriptをCreate React Appにインストールすることを選択しました。後で、タイプを追加)
したがって、すべての型チェックを無効にしたいと思います。
今、私がこのようなことをすると:
<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"
]
}
これをtsconfig.json
に追加してください:
{
"compilerOptions": {
...
"checkJs": false
...
}
}
とりあえず.js
/.jsx
ファイルに固執してください。タイプを使用する準備ができている場合にのみ、.ts
/.tsx
拡張機能を使用します。
行単位でエラーを抑制したい場合は、// @ts-ignore
コメントを使用できます。
タイプのないTypeScriptはJavaScriptです。 TypeScriptなしでプロジェクトを開始し、準備ができたら変換します。ではじまる <any>
は良い習慣ではなく、私の意見では意味がありません。
TypeScriptのUSPは、コンパイル時の型チェックです。最終的にjavascriptにコンパイルされます。 TypeScriptなしで開始します。何らかのリファクタリングをしたい場合は、いつでもプロジェクトに含めることができます。
https://www.typescriptlang.org/docs/handbook/migrating-from-javascript.html
typeScriptエラーがある場合でもビルドを実行させることができます https://create-react-app.dev/docs/advanced-configuration/# ! ctr + f TSC_COMPILE_ON_ERROR
私はnologinに同意します、それをする意味はありませんが、あなたが本当に望んでいるなら、私が考えることができるいくつかの方法があります、ここにカップルがあります:
このコメントをファイルの先頭に追加します/* tslint:disable */
Tslint.jsonからコードフォルダーを除外します(tsconfig.jsonでも実行する必要がある場合があります)
{
// some linting options
linterOptions: {
exclude: ['src/**','components/**'],
}
}
tslint.jsonファイルとtsconfig.jsonファイルを空のオブジェクトで置き換えるだけです