Visual Studio Codeで作業しているNodeプロジェクトでTypeScriptを使用し始めています。 Flowと同様に、「オプトイン」戦略に従うことを望みました。したがって、// @ts-check
を.js
ファイルの先頭に配置して、そのファイルのTSを有効にすることを期待しています。最終的に、Flowと同じ「リンティング」の経験が欲しいので、プラグイン TSLint をインストールしたので、Intellisenseの警告/エラーが表示されます。
しかし、私のファイルは次のようになります:
// @ts-check
module.exports = {
someMethod: (param: string): string => {
return param;
},
};
そして私のtsconfig.json
ファイルは次のようになります...
{
"compilerOptions": {
"target": "es2016",
"module": "commonjs",
"allowJs": true
}
}
このエラーが表示されます:[js] 'types' can only be used in a .ts file.
以下の画像に示すとおり。
私は この質問 を見ましたが、vscodeでjavascript検証を無効にすることを推奨しましたが、それは私には表示されませんanyTypeScript Intellisense情報。
TSLint拡張ドキュメントで述べたように、vscode設定でtslint.jsEnable
をtrue
に設定しようとしましたが、運がありませんでした。
TypeScriptで.js
ファイルを使用してIntellisenseを取得するための正しいセットアップとは何ですか。TSコマンドを実行する前にコードのエラーを把握できますか?
VS Code設定で"javascript.validate.enable": false
を使用します。ESLINTは無効になりません。私はESLINTとFlowの両方を使用します。単に指示に従ってください コード設定のフロー
この行をsettings.jsonに追加します。ヘルプ"javascript.validate.enable": false
.ts
ファイルを使用する必要があります-例test.ts
はTypeScriptを取得します 検証、インテリセンス 変数のtyping
、戻り値の型、および「型付き」エラーチェック(たとえば、string
paramを予期するメソッドにnumber
を渡すとエラーになります)。
(標準).js
via tsc
に変換されます。
採決、非常に役立つコメント、その他の回答に基づいて明確化が必要です。
types
はい、アニメーションに示されているように、 .js
を使用して、@ts-check
ファイルのVS Codeでtype
チェックを実行できます。
私が元々言及していたのは、TypeScripttypes
は.ts
のこのようなもので、まったく同じものではありません。
hello-world.ts
function hello(str: string): string {
return 1;
}
function foo(str:string):void{
console.log(str);
}
これはコンパイルされません。 Error: Type "1" is not assignable to String
Javascripthello-world.js
ファイルでこの構文を試した場合:
//@ts-check
function hello(str: string): string {
return 1;
}
function foo(str:string):void{
console.log(str);
}
OPが参照するエラーメッセージが表示されます:[js] 'types' can only be used in a .ts file
これとOPのコンテキストをカバーする私が見逃したものがあれば、追加してください。みんなで学びましょう。