Varovanie pred experimentálnymi dekorátormi pri kompilácii TypeScriptu
Dostávam varovanie...
Experimentálna podpora pre dekorátory je funkcia, ktorá sa môže v budúcej verzii zmeniť. Nastavte možnosť ‚experimentalDecorators‘, aby sa toto varovanie odstránilo.
... aj keď moje compilerOptions v tsconfig.json majú nasledujúce nastavenia:
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
Čo je zvláštne, je, že niektoré náhodné triedy, ktoré používajú dekorátory, nezobrazujú toto varovanie, ale zvyšok v rovnakom projekte áno.
Čo by mohlo spôsobovať takéto správanie v kompilátore TypeScript?
Odpoveď č. 1
Musím pridať nasledujúce do súboru settings.json vo vscode, aby som odstránil varovanie.
"javascript.implicitProjectConfig.experimentalDecorators": true
VSCode -> Predvoľby -> Nastavenia
AKTUALIZÁCIA
Ako uviedol Clepsyd, toto nastavenie bolo zastarané. Teraz ho musíte použiť.
"js/ts.implicitProjectConfig.experimentalDecorators":true
Odpoveď č. 2
Aj keď je VS Code skvelý editor pre projekty v TypeScripte, občas potrebuje nakopnúť. Často, bez varovania, niektoré súbory spôsobia, že sa začne správať divne a sťažovať sa. Väčšinou sa zdá, že oprava spočíva v uložením a zatvorení všetkých otvorených súborov, potom otvoriť tsconfig.json. Po tom by ste mali byť schopní znova otvoriť problematický súbor bez chyby. Ak to nefunguje, opakujte proces znova a znova.
Ak váš súbor tsconfig.json určuje svoje zdrojové súbory pomocou poľa files, IntelliSense bude fungovať správne iba vtedy, ak je daný súbor referencovaný tak, aby ho VS Code mohol nájsť prechádzaním stromu vstupných súborov.
Upraviť: Príkaz 'obnoviť okno' (pridaný pred mnohými rokmi) by mal tento problém vyriešiť raz a navždy.
Odpoveď č. 3
Súbor -> Predvoľby -> Nastavenia
Odpoveď č. 4
Prosím, postupujte podľa nasledujúceho kroku, aby ste odstránili túto výstrahu.
Krok 1: Prejdite do nastavení vo vašom IDE a potom nájdite alebo vyhľadajte experimentalDecorators.
Krok 2: potom kliknite na začiarkavacie políčko a varovanie bolo z vašej stránky odstránené.
Odpoveď č. 5
Táto chyba nastáva aj vtedy, keď si pre svoj pracovný priečinok vyberiete priečinok „src“.
Keď je vybraná koreňová zložka, zložka, kde sa nachádzajú "src" a "node_modules", chyba zmizne
Odpoveď č. 6
vo vašom projekte vytvorte súbor tsconfig.json, potom pridajte tieto riadky
{
"compilerOptions": {
"experimentalDecorators": true,
"allowJs": true
}
}
Odpoveď č. 7
V aplikácii VSCode prejdite na Súbor => Predvoľby => Nastavenia (alebo Ctrl+čiarka) a otvorí sa súbor Nastavenia používateľa. Vyhľadajte „javascript.implicitProjectConfig.experimentalDecorators“: true a potom zaškrtnite políčko pre experimentalDecorators v súbore a malo by to problém vyriešiť. Mne to pomohlo.
Odpoveď č. 8
musím pridať typescript.tsdk do môjho .vscode/settings.json:
"typescript.tsdk": "node_modules/typescript/lib"
Odpoveď č. 9
Toto varovanie sa mi zobrazuje vo VSCode pri vytváraní novej služby Angular s
@Injectable({
providedIn: 'root'
})
syntakticky (namiesto poskytovania služby v app.module.ts).
Upozornenie pretrváva, kým niekde v projekte neodkazujem na novú službu. Keď sa služba použije, upozornenie zmizne. Nie sú potrebné žiadne zmeny v konfigurácii TypeScriptu ani nastaveniach VSCode.
Odpoveď č. 10
Pre mňa sa táto chyba „Experimental support for decorators is a feature that is subject to change in a future release. (atď)“ vyskytla iba vo VS Code v projekte Angular a iba pri vytváraní novej služby.
Riešenie vyššie: „V Visual Code Studio choďte do Súbor >> Predvoľby >> Nastavenia, vyhľadajte „decorator“ v poli vyhľadávania a zaškrtnite možnosť JavaScript › Implicit Project Config: Experimental Decorators“ vyriešilo problém.
Tiež zastavenie ng serve v terminálovom okne a jeho reštartovanie spôsobilo, že chyba zmizla po opätovnej kompilácii.
Odpoveď č. 11
Vo Visual Studio Code prejdite na Súbor >> Predvoľby >> Nastavenia, vyhľadajte „decorator“ v poli vyhľadávania a zaškrtnite možnosť ako na obrázku.
Odpoveď č. 12
Táto odpoveď je určená pre ľudí, ktorí používajú projekt v Javascript a nie v Typescript. Namiesto súboru tsconfig.json môžete použiť súbor jsconfig.json.
V konkrétnom prípade, keď vás dekorátory varujú, že chcete písať do súboru:
{
"compilerOptions": {
"experimentalDecorators": true
}
}
Čo sa týka požiadaných chybových správaní, je vždy lepšie špecifikovať „include“ v konfiguračnom súbore a reštartovať editor. Napr.
{
"compilerOptions": {
"target": "ES6",
"experimentalDecorators": true
},
"include": [
"app/**/*"
],
"exclude": [
"node_modules"
]
}
Odpoveď č. 13
Otvorte súbor settings.json v nasledujúcom umiestnení <project_folder>/.vscode/settings.json
alebo môžete súbor otvoriť z ponuky, ako je uvedené nižšie
VSCode -> File -> Preferences -> Workspace SettingsPotom pridajte nasledujúce riadky do súboru settings.json
{
"typescript.tsdk": "node_modules/typescript/lib",
"enable_typescript_language_service": false
}
To je všetko. Nebudete vidieť žiadne varovanie/chybu týkajúcu sa 'experimentalDecorators'
Odpoveď č. 14
"javascript.implicitProjectConfig.experimentalDecorators": true
Vyrieši tento problém.
Odpoveď č. 15
Pridajte nasledujúce riadky do tsconfig.json a reštartujte VS Code.
{
"compilerOptions": {
"experimentalDecorators": true,
"target": "es5",
"allowJs": true
}
}
Odpoveď č. 16
KROK 1: Stlačte ctrl+, vo VS code
KROK 2: Zadajte 'js/ts.implicitProjectConfig: Experimental Decorators' do vyhľadávacieho poľa
KROK 3: začiarknite políčko súvisiace s vyhľadávaním
Odpoveď č. 17
Ak používate CLI na kompiláciu súborov *.ts, môžete nastaviť experimentalDecorators pomocou nasledujúceho príkazu:
tsc filename.ts --experimentalDecorators "true"
Odpoveď č. 18
Nedávno som mal tento problém vo Visual Studio 2017 - ukázalo sa, že to spôsobila „funkcia“ VS - ignorovanie tsconfig.json, keď akcia zostavenia nie je nastavená na Obsah.
Takže zmena akcie zostavenia na Obsah a opätovné načítanie riešenia vyriešilo problém.









