我在使用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()));
});
记录输出
答案 0 :(得分:2)
我所做的是使用“ tsc --target ES5 YourFile.ts ”编译ts文件
答案 1 :(得分:1)
gulp-typescript插件有一个名为“target”的选项。我发现设置tsconfig.json文件没有任何效果,但是当我在gulp任务中将目标更改为es5时,它工作正常。
...
.pipe(typescript(tsProject(), { target: 'ES5'}))
...
答案 2 :(得分:0)
试试这个
答案 3 :(得分:-1)
在Windows操作系统和控制台窗口中的Visual Studio代码中键入以下命令: tsc -target“es5”yourFilename.ts