fel TS1056: Åtkomstmetoder är endast tillgängliga när man riktar in sig på ECMAScript 5 i gulp-typescript


Jag får upp ett felmeddelande när jag transpilerar TS till JS med gulp-typescript. Jag försöker använda en ES5-funktion för getters/setters.

fel TS1056: Åtkomstmetoder är endast tillgängliga när man riktar mot ECMAScript 5 och högre

Hur får jag transkompilatorn att rikta in sig på es5?

Jag googlade runt efter lösningar som föreslår att du sätter target=es5 och skickar det vidare till TypeScript. Jag har gjort följande med en tsconfig.json

tsconfig.js

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

gulp-uppgift

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()));
});

inloggad output

Svar #1

Det jag gjorde är att kompilera ts-filen med detta "tsc --target ES5 YourFile.ts"

Svar #2

gulp-typescript-pluginet har ett alternativ som kallas "target". Jag upptäckte att det inte hade någon effekt att ställa in en tsconfig.json-fil, men när jag ändrade target till es5 i min gulp-uppgift fungerade det bra.

pluginalternativ

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

Relaterade artiklar