web-dev-qa-db-ja.com

TypeScriptのコンパイルにおける実験的なデコレータの警告

私は持っています

デコレータの実験的サポートは、将来のリリースで変更される可能性がある機能です。この警告を削除するには、 'experimentalDecorators'オプションを設定してください。

tsconfig.jsonの私のcompilerOptionsにも設定があります。

"emitDecoratorMetadata": true,
"experimentalDecorators": true,

デコレータを使用するいくつかのランダムクラスがその警告を表示しないが同じプロジェクト内にあることは奇妙なことです。

このようなTypeScriptコンパイラの動作の原因は何ですか?

143
bensiu

VS CodeはTypeScriptプロジェクトのための素晴らしいエディタですが、それは時々キックを必要とします。多くの場合、警告なしに、特定のファイルによってファイルがおかしくなって文句を言うことがあります。ほとんどの場合、修正は開いているファイルをすべて保存してから閉じ、次にtsconfig.jsonを開くことです。その後、あなたはエラーなしで問題のファイルを再び開くことができるはずです。うまくいかない場合は、泡立て、洗い流し、そして繰り返します。

tsconfig.jsonfiles配列を使用してそのソースファイルを指定している場合、IntelliSenseは、VS Codeが入力ファイルツリーをたどって検索できるように、問題のファイルが参照されている場合にのみ正しく機能します。

編集: 'reload window'コマンド(以前に追加された年齢)はこの問題を一回で解決します。

127
linguamachina

私は警告を削除するためにvscodeのsettings.jsonファイルに以下を追加する必要があります。

"javascript.implicitProjectConfig.experimentalDecorators": true

VSCode - >設定 - >設定

enter image description here

127
Manoj Paul

このエラーは、ワークスペースフォルダに "src"フォルダを選択したときにも発生します。

ルートフォルダ、「src」、「node_modules」が配置されているフォルダを選択すると、エラーが消えます

82
Semir Deljić

私のTypeScript.tsdk.vscode/settings.jsonを追加する必要があります。

"TypeScript.tsdk": "node_modules/TypeScript/lib"
22
beewest

プロジェクト内にtsconfig.jsonファイルを作成してから、次の行を追加します。

{
    "compilerOptions": {
        "experimentalDecorators": true,
        "allowJs": true
    }
}
21
Muhammed Moussa
"javascript.implicitProjectConfig.experimentalDecorators": true

この問題を解決します。

10
Rajesh Pal

この答えは Javascript プロジェクトを使っていて TypeScript 1を使っていない人を対象としています。 tsconfig.json ファイルの代わりに jsconfig.json ファイルを使用することができます。

デコレータ を持つという特別な場合には、ファイル内に書き込みたいと思います。

{
    "compilerOptions": {
        "experimentalDecorators": true
    }
}

バグのある振る舞いが求められたので、常にconfigファイルで "include"を指定してエディタを再起動するのが良いでしょう。例えば。

{
    "compilerOptions": {
        "target": "ES6",
        "experimentalDecorators": true
    },
    "include": [
        "app/**/*"
    ],
    "exclude": [
        "node_modules"
    ]
}
8
Pere Pages

次の場所にあるsettings.jsonファイルを開きます<project_folder>/.vscode/settings.json

または下記のようにメニューからファイルを開くことができます

VSCode -> File -> Preferences -> Workspace Settings

experimentalDecorators settings

それからsettings.jsonファイルに次の行を追加します

{
    "TypeScript.tsdk": "node_modules/TypeScript/lib",
    "enable_TypeScript_language_service": false
}

それで全部です。 ' experimentalDecorators 'に関する警告やエラーは表示されません。

Tsconfig.jsonに次の行を追加してVS Codeを再起動します。

{
    "compilerOptions": {
        "experimentalDecorators": true,
        "target": "es5",
        "allowJs": true
    }
}
7
Geetesh

要らないようにするために、以下を追加するようにしてください。

  • ユーザー設定ではなくワークスペース設定

ファイル>>設定>>設定

"javascript.implicitProjectConfig.experimentalDecorators":true

これで問題は解決したので、ここや他の場所で見つけたいくつかの提案を試してみた。

7
petey m

「ファイル」 - >「設定」 - >「設定」

3
Dmitriy Botov

私は最近Visual Studio 2017でこの問題を抱えていました - それはVSの「機能」 - BuildアクションがContentに設定されていないときはtsconfig.jsonを無視します _によって引き起こされたことがわかった。

そのため、[構築]アクションを[コンテンツ]に変更してソリューションをリロードすると、問題が解決しました。

3

明快さと愚かさのために。

1).vscode/settings.jsonを開きます。

2)その上に "TypeScript.tsdk": "node_modules/TypeScript/lib"を追加します。

3)保存してください。

4)Visual Studioのコードを再起動します。

3
LEMUEL ADANE

Srcのみを開いた場合、ts.config.json(プロジェクトフォルダ内にある)ファイルは有効範囲に含まれないため、VSコードでsrcフォルダだけでなくプロジェクト全体のフォルダを選択したことを確認してください。 VSは実験的なデコレータのパラメータを認識しません。

私の場合、これでこの問題に関するすべての問題が解決しました。

3
dayanrr91
  1. VScodeを開きます。
  2. Ctrl +コンマを押す
  3. スクリーンショットの指示に従います
    1. ExperimentalDecoratorsに関する検索
    2. それを編集する
2
Mostafa

あなたがビジュアルスタジオで働いているならば。あなたはこの修正を試すことができます

  1. ビジュアルスタジオからプロジェクトをアンロードする
  2. プロジェクトのホームディレクトリに移動して、 "csproj"ファイルを開きます。
  3. 画像に示すように、このセクションにTypeScriptExperimentalDecoratorsを追加します。

    enter image description here

    1. プロジェクトをVisual Studioで再読み込みします。

詳細については this locationを参照してください。

2

Project-name/srcの代わりにプロジェクトのフォルダ全体を開く

tsconfig.jsonがsrcフォルダの外にある

2
Andrew Yavorsky

* .tsファイルをコンパイルするのにcliを使用している場合は、次のコマンドを使用してexperimentalDecoratorsを設定できます。

 tsc filename.ts --experimentalDecorators "true"
1
Koji D'infinte

Tsconfig.jsonファイルから "baseUrl": ""を削除して警告を修正しました

1
D. Greene

ng buildでも試すことができます。アプリを再構築しましたが、今は準拠していません。

0
Leandro hereñu

このオプションをtsconfig.jsonに追加しました、"baseUrl": "front-end"フロントエンドをあなたのangular-cliプロジェクトの名前に置き換えます。

0
Sean Maxwell

Angular 2に Injectable Servicesを作成しているときに同じ問題に直面しました。

@Injectable()
export class ColorsImmutable {

そして修正は、provider配列を使用してモジュールレベルまたはコンポーネントレベルでサービスを登録することでした。

providers:[ColorsImmutable ],
0
Mohammad Javed

プロジェクトの外部に存在するTSファイルを開くと、この問題に遭遇する可能性があります。例えば、私はlernaを使っていて、他のパッケージからファイルを開いていました。その他のパッケージは実験的なデコレータを持つそれ自身のtsconfigを持っていましたが、VsCodeはそれを尊重しません。

0
sparebytes