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'}))
...
