2016-12-07 2 views
12

Ich versuche, diesen Code zu laufen, aber es gibt mir folgende Fehler:Accessoren sind nur verfügbar, wenn ECMAScript Targeting 5 und höher

Animal.ts (10,13): Fehler TS1056: Accessoren sind nur verfügbar, wenn auf ECMAScript 5 und höher abzielt. Animal.ts (14,13): Fehler TS1056: Zugriffspunkte sind nur verfügbar, wenn ECMAScript 5 und höher als Ziel verwendet wird.

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"; 
    } 
} 

Antwort

8

versuchen, eine tsconfig.json Datei in Ihrem Projekt einrichten:

{ 
    "compilerOptions": { 
    "target": "es5" 
    } 
    "files": [] 
} 

, die das Typoskript Compiler sagen wird speziell eine Version zielen.

+0

scheint nicht für mich arbeiten zu wollen –

+0

@ Le-Roy, das ist nicht wirklich genug Informationen für mich zu helfen oder überhaupt produktiv sein. Das in der Konfiguration zu tun, zielt absolut auf es5 ab - es ist dasselbe wie das Verwenden des Flags --target im Befehl tsc. – loctrice

12

Die einzige Sache, die für mich funktioniert, war die Angabe der Target auf MacOS.

tsc --target es5 script.ts 

Sie können den Befehl auf Ihrem Terminal ausführen.

+2

Aber ES5 nicht wirklich umgeben mit einfachen Anführungszeichen, oder Sie erhalten den verwirrenden Fehler wie 'nur 'es5', 'es6', etc ... sind gültige Argumente für target' Warte, das ist genau das, was ich tippte, 'es5'. Aber es sollte 'tsc sein - target es5 script.ts' – 333Matt

+0

Über Befehl gibt Fehler. Müssen Zitate aus 'ES5' entfernen, um es auszuführen –

1

In Windows, die

tsc --target es5 filename.ts 

Optionen sein können: 'ES3', 'ES5', 'es6', 'es2015', 'ES2016', 'es2017', 'esnext'. (ohne '')

+2

Willkommen zu StackOverflow und danke für Ihre Hilfe. Vielleicht möchten Sie Ihre Antwort noch besser machen, indem Sie eine Erklärung hinzufügen. –

0

Ich hatte das gleiche Problem beim Versuch, TypScript-Code mit Visual Studio Code zu kompilieren. Diese löste das Problem:

1) tsconfig.json - fügen Sie die target im compilerOptions:

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

2) tasks.json - fügen Sie das target Argument:

{ 
    "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" 
     } 
    ] 
} 
0

Ich hatte das gleiche Problem. Was ich aus dem docs gelesen habe, ist, dass die Datei tsconfig.json ignoriert wird, wenn Sie die Dateien angeben.

enter image description here

Meine tsconfig.json Datei

{ 
    "compilerOptions": { 
    "target": "es5" 
    }, 
    "include": [ 
    "*.ts" 
    ] 
} 

Und ich führen Sie es von der Kommandozeile

tsc && node *.js 
0

Visuelle Stido Mit 2017?
1- Explorer Lösung> Rechtsklick
2- Zum Projekt hinzufügen> Neues Element
3- (Suchbereich> geben Sie diese> Typoskript)
4- Wählen Sie "Typoskript Json-Konfigurationsdatei"

das ist es
Am Ende dieser Schritte wird tsconfig.json zum Projekt mit dem auf ES5 angewendeten Standardsatz hinzugefügt.

Sie müssen nichts ändern.kompiliere einfach dein Projekt und den Fehler raus.

Verwandte Themen