访问者仅在定位ECMAScript 5及更高版本时可用

jag*_*tre 37 javascript accessor ecmascript-5 typescript

我正在尝试运行此代码,但它给了我以下错误:

Animal.ts(10,13):错误TS1056:访问者仅在定位ECMAScript 5及更高版本时可用.Animal.ts(14,13):错误TS1056:访问者仅在定位ECMAScript 5及更高版本时可用.

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";
    }
}
Run Code Online (Sandbox Code Playgroud)

Bil*_*fas 45

唯一对我Target有用的是指定on macOS和Windows.

tsc --target es5 script.ts
Run Code Online (Sandbox Code Playgroud)

您可以在终端上运行该命令.

  • 但是实际上不要用单引号包围ES5,否则你会得到像'only'es5','es6'等那样令人困惑的错误...是目标的有效参数`等等,这正是我输入的',' ES5' .但是,它应该是`tsc --target es5 script.ts` (2认同)

loc*_*ice 24

尝试在项目中设置tsconfig.json文件:

{
  "compilerOptions": {
  "target": "es5"
  }
  "files": []
}
Run Code Online (Sandbox Code Playgroud)

这将告诉typescript编译器专门针对一个版本.

  • 似乎不想为我工作 (4认同)

noW*_*ome 9

我遇到了同样的问题.我从文档中读到的是,如果指定文件,则会忽略tsconfig.json文件.

在此输入图像描述

我的tsconfig.json文件

{
  "compilerOptions": {
    "target": "es5"
  },
  "include": [
    "*.ts"
  ]
}
Run Code Online (Sandbox Code Playgroud)

我从命令行运行它

tsc && node *.js
Run Code Online (Sandbox Code Playgroud)


小智 8

在 Windows 中,

tsc --target es5 filename.ts
Run Code Online (Sandbox Code Playgroud)

选项可以是:“es3”、“es5”、“es6”、“es2015”、“es2016”、“es2017”、“esnext”。(没有 '')

  • 欢迎使用 StackOverflow,感谢您的帮助。您可能希望通过添加一些解释来使您的答案更好。 (3认同)

小智 5

如果你正在处理单个文件,你可以这样做

tsc your-file.ts --target ES2016 --watch

如果您想在tsconfig.json 中进行整个项目配置

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

您可能想要使用 ECMAScript 数字"es6"、"es7"、"es8"或发布年份,例如"ES2015"、"ES2016"、"ES2017"

ESNext针对最新支持的 ES 提议功能。