Ik probeer deze code uit te voeren, maar ik krijg de volgende fouten:
Animal.ts(10,13): fout TS1056: Accessors zijn alleen beschikbaar wanneer:
gericht op ECMAScript 5 en hoger. Animal.ts (14,13): fout TS1056:
Accessors zijn alleen beschikbaar bij het targeten van ECMAScript 5 en hoger.
interface IAnimal{
name : string;
sayName():string;
}
class AnimalImpm implements IAnimal{
private _name : string = '[Animal]';
get name():string{
return this._name;
}
set name(name:string){
this._name = name;
}
constructor(name:string){
this.name = name;
}
sayName():string {
console.log(`My name is ${this.name}`);
return "Hello";
}
}
Antwoord 1, autoriteit 100%
Het enige dat voor mij werkte, was het specificeren van het target
op macOS en Windows. Let op: de parameter -t
staat voor Target.
tsc -t es5 script.ts
U kunt de opdracht uitvoeren op uw terminal.
Antwoord 2, autoriteit 68%
probeer een tsconfig.json-bestand in uw project in te stellen:
{
"compilerOptions": {
"target": "es5"
}
"files": []
}
die de typoscript-compiler zal vertellen om zich specifiek op een versie te richten.
Antwoord 3, autoriteit 29%
Ik had hetzelfde probleem. Wat ik lees uit het docsis dat het tsconfig.json-bestand wordt genegeerd als u de bestanden specificeert.
Mijn tsconfig.json-bestand
{
"compilerOptions": {
"target": "es5"
},
"include": [
"*.ts"
]
}
En ik voer het uit vanaf de opdrachtregel
tsc && node *.js
Antwoord 4, autoriteit 9%
In Windows, de
tsc --target es5 filename.ts
opties kunnen zijn: ‘es3’, ‘es5’, ‘es6’, ‘es2015’, ‘es2016’, ‘es2017’, ‘esnext’. (zonder ”)
Antwoord 5, autoriteit 7%
Als je te maken hebt met één bestand, zou je dit kunnen doen
tsc your-file.ts --target ES2016 --watch
Als u binnen uw tsconfig.jsonwilt voor de volledige projectconfiguratie
{
"compilerOptions": {
"target": "ES2016"
}
"files": []
}
Misschien wilt u ECMAScript-numeriek “es6”, “es7”, “es8”of het jaar van uitgave gebruiken, zoals “ES2015”, “ES2016”, “ES2017”.
ESNextricht zich op de nieuwste ondersteunde door ES voorgestelde functies.
Antwoord 6, autoriteit 3%
Ik weet dat dit een oud gesprek is, maar ik denk dat de onderstaande oplossing een zeer nuttige opdracht zou kunnen zijn voor alle ontwikkelaars hier.
Je kunt dit eenvoudig oplossen met behulp van dit commando in je Terminal, Command Prompt, Git Bash en etc:
tsc --target ES2016 Animal.ts --watch
of
tsc --target es5 Animal.ts --watch
--watch
is optioneel en betekent dat u uw code niet bij elke wijziging hoeft te compileren.
Antwoord 7, autoriteit 3%
In mijn geval hoefde ik alleen het doel toe te voegen.
tsc *.ts --target ES5 && node *.js
Antwoord 8, autoriteit 2%
Had hetzelfde probleem, heb het hiermee voor elkaar gekregen… voor een enkel bestand!
tsc -target "es5" filename && node filename
"es5"
met aanhalingstekens-
hoef geen bestandsextensies te vermelden
-
tsc -target "es5" filename
– transpileert het typescript naar “es5” JavaScript -
node filename
– voert het getranspileerde javascript-bestand uit
Antwoord 9
Ik had hetzelfde probleem toen ik TypeScript-code probeerde te compileren met Visual Studio Code.
Dit loste het probleem op:
1) tsconfig.json– voeg het target
toe aan de compilerOptions
:
{
"compilerOptions": {
"target": "es5", // <-- here!
"module": "commonjs",
"sourceMap": true
}
}
2) tasks.json– voeg het argument target
toe:
{
"version": "2.0.0",
"tasks": [
{
"taskName": "build",
"type": "process",
"command": "tsc",
"args": [
"ts/Program.ts",
"--outDir", "js",
"--sourceMap",
"--watch",
"--target", "es5" // <-- here!
],
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"reveal": "always"
},
"problemMatcher": "$tsc"
}
]
}
Antwoord 10
Hier is een eenvoudige oplossing
tsc file.ts --target ES5 && node file.js
Opmerking:zorg ervoor dat u uw bestandsnaam gebruikt. Dit is alleen voor u van toepassing als de naam van uw .ts-bestand bestandis.
Ik denk dat een schonere manier om die code te schrijven deze zou zijn geweest
class AnimalImpm {
constructor(private _name?:string){
this.name = name;
}
get name():string{
return this._name;
}
set name(name:string){
this._name = name;
}
sayName():string {
console.log(`My name is ${this.name}`);
return "Hello";
}
}
let data = new AnimalImpm('Animal');
data.name;
data.name = 'newAnimal';
data.sayName();
Antwoord 11
Ik heb esnext
getarget en zelfs hiermee kreeg ik de fout.
Maar voor mij hielp het om de .vue-bestanden in tsconfig.json
te targeten.
Vind ik leuk:
"include": [
"*.ts",
"*.vue" // << added
],
Antwoord 12
Visual Stido 2017 gebruiken?
1- Oplossingsverkenner>Klik met de rechtermuisknop om te projecteren
2- >Nieuw item toevoegen
3- (Zoek sectie >typ dit> typoscript)
4- Selecteer “TypeScript Json-configuratiebestand”
thats it
aan het einde van deze stappen wordt tsconfig.json toegevoegd aan het project met de standaardset toegepast op ES5
u hoeft niets te veranderen. hercompileer gewoon je project en de fout verdwijnt.
Antwoord 13
Hier moet je de schakelaar doorgeven om scriptcompiler te typen, zodat het zich richt op het ECMAScript-bestand. Voer hiervoor onderstaande code in de terminal in
tsc (uw ts-bestand).ts –target ES5
en voer uw bulid js-bestand uitnode (uw js-bestand)
Antwoord 14
Probeer tsc myTS.ts –target ES5 te gebruiken
dit komt omdat TypeScript de ECMA script 5-compiler moet Traget.
Antwoord 15
Eindelijk gelukt voor mij. Voer het bestand uit en vermeld vervolgens de doelvlag
tsc script.ts --t es5
voer hier de linkbeschrijving in
Antwoord 16
tsc -target "es5" filename && node filename
Het is niet nodig om de extensie op te geven.
Antwoord 17
tsc .\main.components.ts –target ES5