错误 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 为目标时可用的主要内容,如果未能解决你的问题,请参考以下文章

日期选择器仅在聚焦时显示错误

HTML5 日期选择器仅在第二次点击时打开

Visual Studio 预处理器仅在设置 /P 时才有效

ML 决策树分类器仅在同一棵树上拆分/询问相同的属性

Django rest 框架深度序列化器仅在 to_representation 中

原子属性包装器仅在声明为类而不是结构时才有效