错误TS1056:仅当在gulp-typescript中定位ECMAScript 5时,访问器才可用

error TS1056: Accessors are only available when targeting ECMAScript 5 in gulp-typescript

在使用gulp-typescript将TS转换为JS时,出现了这个错误消息。 我正在尝试将ES5功能用于getter / setter。

error TS1056: Accessors are only available when targeting ECMAScript 5
and higher

如何使转编译器定位到es5?

我到处搜索解决方案,建议您设置target = es5并将其传递给打字稿。 我已经使用tsconfig.json完成了以下操作

tsconfig.js

1
2
3
4
5
6
{
 "compilerOptions": {
   "target":"es5"
  },
 "files": []
}

吞噬任务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import gulp from 'gulp';
import gulpif from 'gulp-if';
import livereload from 'gulp-livereload';
import typescript from 'gulp-typescript';
import args from './lib/args';

const tsProject = typescript.createProject('tsconfig.json');

console.log(tsProject);

gulp.task('scripts-typescript', () => {
    return gulp.src('app/scripts/**/*.ts')
        .pipe(typescript(tsProject()))
        .pipe(gulp.dest(`dist/${args.vendor}/scripts`))
        .pipe(gulpif(args.watch, livereload()));
});

记录的输出

enter image description here


我所做的是使用" tsc --target ES5 YourFile.ts"编译ts文件。


gulp-typescript插件具有一个名为" target"的选项。 我发现设置tsconfig.json文件没有任何效果,但是当我在gulp任务中将目标更改为es5时,它运行良好。

插件选项

1
2
3
...
    .pipe(typescript(tsProject(), { target: 'ES5'}))
...

试试这个

  • 转到terminal / cmd并导航到ts文件所在的目录。
  • 使用以下命令。
    tsc filename.ts-目标ES5

在控制台窗口的Windows操作系统和Visual Studio代码中,键入以下命令:
tsc -target" es5" yourFilename.ts