私は持っています
デコレータの実験的サポートは、将来のリリースで変更される可能性がある機能です。この警告を削除するには、 'experimentalDecorators'オプションを設定してください。
tsconfig.jsonの私のcompilerOptionsにも設定があります。
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
デコレータを使用するいくつかのランダムクラスがその警告を表示しないが同じプロジェクト内にあることは奇妙なことです。
このようなTypeScriptコンパイラの動作の原因は何ですか?
VS CodeはTypeScriptプロジェクトのための素晴らしいエディタですが、それは時々キックを必要とします。多くの場合、警告なしに、特定のファイルによってファイルがおかしくなって文句を言うことがあります。ほとんどの場合、修正は開いているファイルをすべて保存してから閉じ、次にtsconfig.json
を開くことです。その後、あなたはエラーなしで問題のファイルを再び開くことができるはずです。うまくいかない場合は、泡立て、洗い流し、そして繰り返します。
tsconfig.json
がfiles
配列を使用してそのソースファイルを指定している場合、IntelliSenseは、VS Codeが入力ファイルツリーをたどって検索できるように、問題のファイルが参照されている場合にのみ正しく機能します。
編集: 'reload window'コマンド(以前に追加された年齢)はこの問題を一回で解決します。
このエラーは、ワークスペースフォルダに "src"フォルダを選択したときにも発生します。
ルートフォルダ、「src」、「node_modules」が配置されているフォルダを選択すると、エラーが消えます
私のTypeScript.tsdk
に.vscode/settings.json
を追加する必要があります。
"TypeScript.tsdk": "node_modules/TypeScript/lib"
プロジェクト内にtsconfig.jsonファイルを作成してから、次の行を追加します。
{
"compilerOptions": {
"experimentalDecorators": true,
"allowJs": true
}
}
"javascript.implicitProjectConfig.experimentalDecorators": true
この問題を解決します。
この答えは Javascript プロジェクトを使っていて TypeScript 1を使っていない人を対象としています。 tsconfig.json ファイルの代わりに jsconfig.json ファイルを使用することができます。
デコレータ を持つという特別な場合には、ファイル内に書き込みたいと思います。
{
"compilerOptions": {
"experimentalDecorators": true
}
}
バグのある振る舞いが求められたので、常にconfigファイルで "include"を指定してエディタを再起動するのが良いでしょう。例えば。
{
"compilerOptions": {
"target": "ES6",
"experimentalDecorators": true
},
"include": [
"app/**/*"
],
"exclude": [
"node_modules"
]
}
次の場所にあるsettings.json
ファイルを開きます<project_folder>/.vscode/settings.json
または下記のようにメニューからファイルを開くことができます
VSCode -> File -> Preferences -> Workspace 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
}
}
要らないようにするために、以下を追加するようにしてください。
ファイル>>設定>>設定
"javascript.implicitProjectConfig.experimentalDecorators":true
これで問題は解決したので、ここや他の場所で見つけたいくつかの提案を試してみた。
私は最近Visual Studio 2017でこの問題を抱えていました - それはVSの「機能」 - BuildアクションがContentに設定されていないときはtsconfig.jsonを無視します _によって引き起こされたことがわかった。
そのため、[構築]アクションを[コンテンツ]に変更してソリューションをリロードすると、問題が解決しました。
明快さと愚かさのために。
1).vscode/settings.jsonを開きます。
2)その上に "TypeScript.tsdk": "node_modules/TypeScript/lib"を追加します。
3)保存してください。
4)Visual Studioのコードを再起動します。
Srcのみを開いた場合、ts.config.json(プロジェクトフォルダ内にある)ファイルは有効範囲に含まれないため、VSコードでsrcフォルダだけでなくプロジェクト全体のフォルダを選択したことを確認してください。 VSは実験的なデコレータのパラメータを認識しません。
私の場合、これでこの問題に関するすべての問題が解決しました。
あなたがビジュアルスタジオで働いているならば。あなたはこの修正を試すことができます
画像に示すように、このセクションにTypeScriptExperimentalDecoratorsを追加します。
詳細については this locationを参照してください。
Project-name/srcの代わりにプロジェクトのフォルダ全体を開く
tsconfig.jsonがsrcフォルダの外にある
* .tsファイルをコンパイルするのにcliを使用している場合は、次のコマンドを使用してexperimentalDecoratorsを設定できます。
tsc filename.ts --experimentalDecorators "true"
Tsconfig.jsonファイルから "baseUrl": ""を削除して警告を修正しました
ng build
でも試すことができます。アプリを再構築しましたが、今は準拠していません。
このオプションをtsconfig.jsonに追加しました、"baseUrl": "front-end"
フロントエンドをあなたのangular-cliプロジェクトの名前に置き換えます。
Angular 2に Injectable Servicesを作成しているときに同じ問題に直面しました。
@Injectable()
export class ColorsImmutable {
そして修正は、provider配列を使用してモジュールレベルまたはコンポーネントレベルでサービスを登録することでした。
providers:[ColorsImmutable ],
プロジェクトの外部に存在するTSファイルを開くと、この問題に遭遇する可能性があります。例えば、私はlernaを使っていて、他のパッケージからファイルを開いていました。その他のパッケージは実験的なデコレータを持つそれ自身のtsconfigを持っていましたが、VsCodeはそれを尊重しません。