web-dev-qa-db-ja.com

VSCode:実験的なデコレータ警告を抑制することは可能ですか

VSCodeでは、エラーが発生します:

「デコレータの実験的サポートは、今後のリリースで変更される可能性がある機能です。この警告を削除するには、「-experimentalDecorators」を指定してください。」

--experimentalDecoratorsフラグをtasks.jsonファイルに追加して、ビルド時にこのエラーを削除できますが、VSCodeを読み込むときにインテリセンスまたはエラーリストから削除できないようです。これを行う方法はありますか?

35
bingles

この同じエラーが発生していました。次のtsconfig.jsonファイルをプロジェクトルートに追加し、VSCodeを再起動すると、最終的に消えました。

{
    "compilerOptions": {
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "module": "AMD",
        "target": "ES6" 
    }
}

更新:

Tsconfig.jsonに「files」配列を追加するまで、VS Codeはこの警告を抑制しないことがあります。空の配列でも動作します。私にとってこれは毎回うまくいきました。メッセージが消えない場合は、次を試してください。

{
    "compilerOptions": {
        ... 
    },
    "files": [],
    "exclude": [
        "node_modules"
    ]
}

おそらく誰もが結果が混在している理由を説明できますか?

42
Felipe

VSCはデフォルトで、独自のTSライブラリと定義を確認します。別のバージョンを使用している場合(可能性が高い)、VSCにそのバージョン定義を探すように指示する必要があります。

私のsettings.jsonファイル、次の設定があります。

// Place your settings in this file to overwrite default and user settings.
{
    "TypeScript.tsdk": "node_modules\\TypeScript\\lib"

}

これは、ユーザー設定またはワークスペース設定のいずれかに設定できると思います。そのため、ユーザー設定で、または1つのプロジェクト/ワークスペースに対して1回だけ構成を行うことができます。これは、指定したフォルダーにTypeScriptがローカルにインストールされている場合に機能します。これはデフォルトのノードモジュールフォルダーであると考えられます。

設定を編集するには、File/Preferences/User SettingまたはFile/Preference/Workspace Settings

更新:Visual Studio Codeは、TypeScriptのさまざまなバージョンのサポートが強化された新しいバージョンをリリースしました。こちらをご覧ください: https://code.visualstudio.com/updates#_languages

警告を削除するには、vscodeのsettings.jsonファイルに次を追加する必要があります。

"javascript.implicitProjectConfig.experimentalDecorators": true

VSCode->設定->設定

enter image description here

14
Manoj Paul

%code%\resources\app\plugins\vs.language.TypeScript\lib\tsserver.lib

次のコードを探して削除します

            if (!compilerOptions.experimentalDecorators) {
              error(node, ts.Diagnostics.Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Specify_experimentalDecorators_to_remove_this_warning);
            }
12
Wosi

2つの異なるAngular 2つの最終リリースプロジェクトでこれに苦労しています。これが私のソリューションです。

tsconfig.json in src fold。

{
    "compilerOptions": {

        "experimentalDecorators": true

    }
} 

[〜#〜] and [〜#〜]

この設定を「ファイル」->「設定」->「ユーザー設定」に追加します

"TypeScript.tsdk": "node_modules\\TypeScript\\lib"
6
Sydwell

他の回答が指摘したように、Visual Studioコードはtsconfig.jsonファイルを見つける必要があります。

同じ問題がありました。そして、それは私がプロジェクトの構造を理解しなかったからです。

(ヒント:下の図のテキストを上から下に読みます)。

Solution

  1. tsconfig.jsontsconfig.app.jsonを混同していました。
  2. そして、Visual Studioで間違ったフォルダーを開いていました。その結果、tsconfig.jsonはスコープ内にありませんでした。

正しいルートフォルダー(つまり、src。より1レベル高いプロジェクトフォルダー)を開くだけで問題は解決しました。

5
bvdb

これは、React JSファイル(VSCodeバージョン1.9.1)で役立ちました。

1)tsconfig.jsonに入れる:

{
    "compilerOptions": {
        "experimentalDecorators": true,
        "allowJs": true
    }
}

2)VS Codeを再起動します。

注:以下で述べたように、TypeScriptを使用していない場合でも、tsconfig.jsonを追加する必要があります。

ソース: https://ihatetomatoes.net/how-to-remove-experimentaldecorators-warning-in-vscode/

3
mario1ua

"TypeScript.tsdk"setting.jsonを使用して、VSCodeで使用されるtsserver.jsおよびlib.tsファイルを含む特定のフォルダーパスを変更できます。

この例を参照してください: 相対パスを使用してTypeScript sdkを構成できますか?

注:[ファイル]> [設定]> [ユーザー設定]にsetting.jsonがあります。

3
Abraão Alves

Grunt(grunt-ts)を使用する場合、ファイルのオプションとして「experimentalDecorators:true」も追加する必要がありますgruntfile.js

ファイルは最後に次のようになります。

module.exports = function(grunt) {
  grunt.initConfig({
    ts: {
      default : {
        src: ["**/*.ts", "!node_modules/**"]
      },
      options: {
        experimentalDecorators: true
      }
    }
  });
  grunt.loadNpmTasks("grunt-ts");
  grunt.registerTask("default", ["ts"]);
};

詳細については、githubのドキュメントをご覧ください https://github.com/TypeStrong/grunt-ts#experimentaldecorators

2
Cedriga

Visual Studio code 1.3.1私の修正はC:\ Program Files(x86)\ Microsoft VS Code\resources\app\extensions\TypeScript\server\TypeScript\lib\tsserverにあります.jsそしてコメントアウトまたは行を削除します。

if (!compilerOptions.experimentalDecorators) {
     error(node, ts.Diagnostics.Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Specify_experimentalDecorators_to_remove_this_warning);
}
2
jmvtrinidad

プロジェクト内の適切なレベルでVSCodeを開く場合でも、ルートに追加のtsconfigファイルが必要になる場合があります。プロジェクトルート(phpインデックスとフォルダーのみを含む)、tsフォルダー(レガシーTypeScriptクラス)、およびsrcフォルダー(vueコンポーネント)にtsconfigがあります。

フォルダーを閉じて、VSCodeを再起動することを忘れないでください。

1
Huupke

私は同じエラーを抱えていました。これは.jsである必要があります。

1
AHSAN KHAN

Srcフォルダーだけでなく、プロジェクト全体のフォルダーもVS Codeで反対していることを確認してください。srcのみを開くと、ts.config.jsonファイルはスコープ内になく、VSは実験デコレーターを認識しません。パラメーター。

私の場合、これはすべての問題を修正しました

1
dayanrr91