2016-03-24 3 views
1

Я использую Gulp 4 и скомпилировал машинописный текст вплоть до javascript. Для этого я использую плагин gulp-typescript. Хотя это скомпилировать я получаю кучу ошибок при compliling:Gulp 4 Ошибки компиляции TypeScript

Ошибки:

[17:43:02] Using gulpfile ~/Sites/dmfa/gulpfile.js 
[17:43:02] Starting 'typescript'... 
[17:43:02] Starting 'clean-typescript'... 
[17:43:02] Cleaning: ./web/js/**/*.js 
[17:43:02] Finished 'clean-typescript' after 21 ms 
[17:43:02] Starting '<anonymous>'... 
[17:43:02] Compiling TypeScript --> JavaScript 
error TS2304: Cannot find name 'Promise'. 
error TS2304: Cannot find name 'Map'. 
error TS2304: Cannot find name 'MapConstructor'. 
error TS2304: Cannot find name 'SetConstructor'. 
error TS2304: Cannot find name 'Set'. 
error TS2304: Cannot find name 'Iterator'. 
[17:43:03] TypeScript: 76 semantic errors 
[17:43:03] TypeScript: emit succeeded (with errors) 
[17:43:03] Finished '<anonymous>' after 1.75 s 
[17:43:03] Finished 'typescript' after 1.77 s 

Process finished with exit code 0 

Хотя это по-прежнему собирает реальные ошибки, возможно, быть более посмотрел, и было бы более приятным для меня, чтобы исправить ошибки.

Может ли кто-нибудь дать мне некоторое представление о том, почему происходят эти ошибки.

ответ

1

На всякий случай кто-то задавался вопросом, вот что исправлено для меня. Я добавил следующее вверху моего файла main.js (файл начальной загрузки). Нашел здесь: Angular 2 typescript can't find names

///<reference path="node_modules/angular2/typings/browser.d.ts"/> 

Файл файл main.ts выглядит следующим образом:

///<reference path="../../../node_modules/angular2/typings/browser.d.ts"/> 
import {bootstrap} from 'angular2/platform/browser'; 
import {AppComponent} from './app.component'; 

bootstrap(AppComponent) 
    .catch(err => console.error(err)); 

Просто убедитесь, что путь правильный путь к вашей папке node_modules, как мой машинопись вложен в моем проекте ,

1

Похоже, вы ориентируетесь на ES5/ES3 и используете функции машинописного текста, которые поддерживаются только при компиляции таргетинга ES6. Чтобы исправить это, вы можете попытаться либо явно указать параметр «target» в gulp-typescript как ES6, либо если вы загружаете tsconfig - убедитесь, что вы установите целевой ES6 там.

+0

@Amind Как это влияет на мой конечный результат. Не все браузеры поддерживают ES6, так что это приведет к ошибкам в браузерах без поддержки? – Dblock247

+0

есть. вам нужно будет использовать полисы для заполнения недостающих функциональных возможностей. Например, для обещаний вы можете использовать es6-обещание. Но я не уверен, что вы сможете обойти все возможности таким образом. Вы также можете перевести с es6 на es5 с помощью babel и т. Д., Но я действительно не думаю, что он будет полностью охватывать все. – Amid

Смежные вопросы