Gulp 4 个 TypeScript 编译错误
Gulp 4 TypeScript Compilation Errors
我正在使用 Gulp 4 并将 Typescript 编译为 javascript。为此,我正在使用 gulp-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
虽然这仍然会编译出真正的错误,但可能被忽略了,我更愿意更正这些错误。
任何人都可以告诉我为什么会发生这些错误。
看起来您的目标是 ES5/ES3 并使用仅在针对 ES6 编译时才支持的打字稿功能。要解决此问题,您可以尝试在 gulp-typescript 中显式提供 'target' 选项作为 ES6,或者如果您正在向它提供 tsconfig - 确保在那里设置目标 ES6。
以防万一有人想知道这里是什么为我解决了所有问题。我在 main.js 文件(bootstrap 文件)的顶部添加了以下内容。在这里找到这个: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 文件夹的正确路径,因为我的打字稿嵌套在我的项目中。
我正在使用 Gulp 4 并将 Typescript 编译为 javascript。为此,我正在使用 gulp-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
虽然这仍然会编译出真正的错误,但可能被忽略了,我更愿意更正这些错误。
任何人都可以告诉我为什么会发生这些错误。
看起来您的目标是 ES5/ES3 并使用仅在针对 ES6 编译时才支持的打字稿功能。要解决此问题,您可以尝试在 gulp-typescript 中显式提供 'target' 选项作为 ES6,或者如果您正在向它提供 tsconfig - 确保在那里设置目标 ES6。
以防万一有人想知道这里是什么为我解决了所有问题。我在 main.js 文件(bootstrap 文件)的顶部添加了以下内容。在这里找到这个: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 文件夹的正确路径,因为我的打字稿嵌套在我的项目中。