Accessors zijn alleen beschikbaar bij het targeten van ECMAScript 5 en hoger

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 targetop macOS en Windows. Let op: de parameter -tstaat 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.

voer hier de afbeeldingsbeschrijving in

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

--watchis 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 targettoe aan de compilerOptions:

{
    "compilerOptions": {
        "target": "es5",  // <-- here!
        "module": "commonjs",
        "sourceMap": true
    }
}

2) tasks.json– voeg het argument targettoe:

{
    "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 esnextgetarget en zelfs hiermee kreeg ik de fout.
Maar voor mij hielp het om de .vue-bestanden in tsconfig.jsonte 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 uit

node (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

Other episodes