错误 TS1056:访问器仅在 gulp-typescript 中以 ECMAScript 5 为目标时可用
Posted
技术标签:
【中文标题】错误 TS1056:访问器仅在 gulp-typescript 中以 ECMAScript 5 为目标时可用【英文标题】:error TS1056: Accessors are only available when targeting ECMAScript 5 in gulp-typescript 【发布时间】:2017-03-14 02:26:39 【问题描述】:我在使用 gulp-typescript 将 TS 转编译为 JS 时出现此错误消息。我正在尝试为 getter/setter 使用 ES5 功能。
错误 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()));
);
记录输出
【问题讨论】:
你的问题是什么? 【参考方案1】:我所做的是用这个“tsc --target ES5 YourFile.ts”编译ts文件
【讨论】:
请不要在多个问题上转发相同的答案。如果问题相同,请将它们标记为重复。 (几乎不需要代表,很容易获得。)如果问题不同,请调整您对问题的答案。 这无关紧要。如果您要运行 typescript 编译器,您使用的建议与使用 tsconfig 相同。但是,OP 正在使用 gulp,您的回答与 gulp 或 tsconfig 无关。【参考方案2】:gulp-typescript 插件有一个名为 "target" 的选项。我发现设置一个 tsconfig.json 文件没有任何效果,但是当我在我的 gulp 任务中将目标更改为 es5 时它工作正常。
plugin options
...
.pipe(typescript(tsProject(), target: 'ES5'))
...
【讨论】:
【参考方案3】:试试这个
转到终端/cmd 并导航到您的 ts 文件所在的目录。 使用以下命令。 tsc 文件名.ts --target ES5【讨论】:
【参考方案4】:在 windows 操作系统和控制台窗口中的 Visual Studio 代码中,键入以下命令: tsc -target "es5" yourFilename.ts
【讨论】:
以上是关于错误 TS1056:访问器仅在 gulp-typescript 中以 ECMAScript 5 为目标时可用的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 预处理器仅在设置 /P 时才有效