错误TS1056:访问者仅在gulp-typescript

时间:2016-10-31 22:56:19

标签: typescript ecmascript-5 tsconfig gulp-typescript

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

  

错误TS1056:访问者仅在定位ECMAScript 5时可用   

如何让转型编译器定位到es5?

我搜索了一些解决方案,建议您设置target = es5并将其传递给打字稿。我使用tsconfig.json

完成了以下操作

tsconfig.js

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

gulp任务

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

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

gulp-typescript插件有一个名为“target”的选项。我发现设置tsconfig.json文件没有任何效果,但是当我在gulp任务中将目标更改为es5时,它工作正常。

plugin options

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

答案 2 :(得分:0)

试试这个

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

答案 3 :(得分:-1)

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