javascript - Los accesores solo están disponibles al apuntar a ECMAScript 5 o superior
Estoy intentando ejecutar este código, pero me está dando los siguientes errores:
Animal.ts(10,13): error TS1056: Los accesores solo están disponibles cuando se apunta a ECMAScript 5 o superior. Animal.ts(14,13): error TS1056: Los accesores solo están disponibles cuando se apunta a ECMAScript 5 o superior.
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";
}
}
Respuesta #1
Lo único que funcionó para mí fue especificar el Target en macOS y Windows. Por favor, ten en cuenta que el parámetro -t representa Target.
tsc -t es5 script.ts
Puedes ejecutar el comando en tu terminal.
Respuesta #2
Intenta configurar un archivo tsconfig.json en tu proyecto:
{
"compilerOptions": {
"target": "es5"
}
"files": []
}
Eso le dirá al compilador de TypeScript que apunte a una versión específica.
Respuesta #3
Tenía el mismo problema. Lo que leí en la documentación es que el archivo tsconfig.json se ignora si especificas los archivos.
Mi archivo tsconfig.json
{
"compilerOptions": {
"target": "es5"
},
"include": [
"*.ts"
]
}
Y lo ejecuto desde la línea de comandos
tsc && node *.js
Respuesta #4
Si estás trabajando con un archivo único, podrías hacer esto:
tsc your-file.ts --target ES2016 --watchSi lo quieres dentro de tu tsconfig.json para la configuración de todo el proyecto:
{ "compilerOptions": { "target": "ES2016" } "files": [] }Es posible que desee usar ya sea el numérico de ECMAScript "es6", "es7", "es8" o el año de lanzamiento, como "ES2015", "ES2016", "ES2017".
ESNext apunta a las últimas características propuestas de ES que son compatibles.
