Angular 2 Typescript编译器错误 [英] Angular 2 Typescript compiler error

查看:93
本文介绍了Angular 2 Typescript编译器错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我认为是时候在开发中使用Angular2了,所以我想开始,但是我一直停留在TS编译器提出的错误上.我正在使用django-pipelines和pipelines-typescript包.如果我创建一个.ts文件,它输出.js及其工作,看来编译器可以正常工作.但是,当我尝试使用angular2时,它会输出错误TS2304:找不到名称'Map'"和'Promise'.\ n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/promise.d.ts(3,14):错误TS2304:找不到名称Promise:

I think its time to use Angular2 in development, so I want to start, but I have stuck at Error raised by TS compiler. Im using django-pipelines and pipelines-typescript package. It seems that compiler works ok if i create a .ts file it outputs .js and its working. But when I trying to use angular2 it outputs " error TS2304: Cannot find name 'Map'" and "'Promise'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/promise.d.ts(3,14): error TS2304: Cannot find name promise":

    CompilerError at /
b"/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/core/change_detection/parser/locals.d.ts(3,14): error TS2304: Cannot find name
 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/core/change_detection/parser/locals.d.ts(4,42): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/core/linker/element_injector.d.ts(71,32): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/core/linker/element_injector.d.ts(73,17): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/core/linker/element_injector.d.ts(77,184): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/core/linker/element_injector.d.ts(82,182): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/core/linker/element_injector.d.ts(106,37): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/core/linker/proto_view_factory.d.ts(28,146): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/core/linker/view.d.ts(52,144): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/core/linker/view.d.ts(76,79): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/core/linker/view.d.ts(77,73): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/core/linker/view.d.ts(95,31): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/core/linker/view.d.ts(98,18): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/core/linker/view.d.ts(101,24): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/core/linker/view.d.ts(104,162): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/core/linker/view.d.ts(105,160): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/core/render/api.d.ts(317,74): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/core/zone/ng_zone.d.ts(2,37): error TS2304: Cannot find name 'Zone'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/collection.d.ts(1,25): error TS2304: Cannot find name 'MapConstructor'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/collection.d.ts(2,25): error TS2304: Cannot find name 'SetConstructor'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/collection.d.ts(4,27): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/collection.d.ts(4,39): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/collection.d.ts(7,9): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/collection.d.ts(8,30): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/collection.d.ts(11,43): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/collection.d.ts(12,27): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/collection.d.ts(14,23): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/collection.d.ts(15,25): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/collection.d.ts(94,41): error TS2304: Cannot find name 'Set'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/collection.d.ts(95,22): error TS2304: Cannot find name 'Set'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/collection.d.ts(96,25): error TS2304: Cannot find name 'Set'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/lang.d.ts(1,1): error TS1148: Cannot compile modules unless the '--module' flag is provided.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/lang.d.ts(2,22): error TS2304: Cannot find name 'BrowserNodeGlobal'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/lang.d.ts(48,59): error TS2304: Cannot find name 'Map'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/promise.d.ts(1,10): error TS2304: Cannot find name 'Promise'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/promise.d.ts(3,14): error TS2304: Cannot find name 'Promise'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/promise.d.ts(8,32): error TS2304: Cannot find name 'Promise'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/promise.d.ts(9,38): error TS2304: Cannot find name 'Promise'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/promise.d.ts(10,35): error TS2304: Cannot find name 'Promise'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/promise.d.ts(10,93): error TS2304: Cannot find name 'Promise'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/promise.d.ts(11,34): error TS2304: Cannot find name 'Promise'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/promise.d.ts(12,32): error TS2304: Cannot find name 'Promise'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/promise.d.ts(12,149): error TS2304: Cannot find name 'Promise'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/angular2/src/facade/promise.d.ts(13,43): error TS2304: Cannot find name 'Promise'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/js/sceneapp/app.ts(1,1): error TS6053: File '/Users/bbx/envs/dscn_3/bin/scene/scene/static/js/typings/angular2-meteor.d.ts' not found.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/js/sceneapp/app.ts(8,14): error TS1219: Experimental support for decorators is a feature that is subject to change in a future release. Specify '--experimentalDecorators' to remove this warning.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/rxjs/CoreOperators.d.ts(22,67): error TS2304: Cannot find name 'Promise'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/rxjs/CoreOperators.d.ts(72,67): error TS2304: Cannot find name 'Promise'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/rxjs/CoreOperators.d.ts(77,31): error TS2304: Cannot find name 'PromiseConstructor'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/rxjs/CoreOperators.d.ts(77,54): error TS2304: Cannot find name 'Promise'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/rxjs/Observable.d.ts(65,67): error TS2304: Cannot find name 'PromiseConstructor'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/rxjs/Observable.d.ts(65,88): error TS2304: Cannot find name 'Promise'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/rxjs/Observable.d.ts(72,84): error TS2304: Cannot find name 'Promise'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/rxjs/Observable.d.ts(77,38): error TS2304: Cannot find name 'Promise'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/rxjs/Observable.d.ts(100,66): error TS2304: Cannot find name 'Promise'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/rxjs/Observable.d.ts(154,66): error TS2304: Cannot find name 'Promise'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/rxjs/Observable.d.ts(159,31): error TS2304: Cannot find name 'PromiseConstructor'.\n/Users/bbx/envs/dscn_3/bin/scene/scene/static/rxjs/Observable.d.ts(159,54): error TS2304: Cannot find name 'Promise'.\n"

我的模板是:

    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link href="/static/css/style.css" rel="stylesheet" type="text/css" media="screen,projection" />
    <script type="text/javascript" src="/static/typescript/lib/tsc.js" charset="utf-8"></script>
<script type="text/javascript" src="/static/es6-shim/es6-shim.js" charset="utf-8"></script>
<script type="text/javascript" src="/static/rxjs/Rx.js" charset="utf-8"></script>
<script type="text/javascript" src="/static/systemjs/dist/system.js" charset="utf-8"></script>
<script type="text/javascript" src="/static/angular2/bundles/angular2.js" charset="utf-8"></script>
<script type="text/javascript" src="/static/js/sceneapp/app.js" charset="utf-8"></script>
    </head>
<body>
Works
</body>
</html>

和app.ts是

import {Component} from 'angular2/core';

@Component({
    selector: 'my-app',
    template: '<h1>My First Angular 2 App</h1>'
})
export class AppComponent {}

所以我看到它找不到承诺和地图.

So I see that it cannot find a promise and map.

推荐答案

对于基本的angular2应用程序,必须包含以下脚本;当您包含angular2-polyfills时,则不需要ES6-shim:

These scripts must be included for a basic angular2 application, ES6-shim is not necessary when you include angular2-polyfills:

<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/rxjs/bundles/Rx.js"></script>
<script src="node_modules/angular2/bundles/angular2.dev.js"></script>

此后,您可以制作一个systemjs脚本来加载您的应用程序:

After this you can make a systemjs script which will load your app:

System.config({
    packages: {
        'static/js': {
            format: 'register',
            defaultExtension: 'js'
        }
    }
});
System.import('sceneapp/app').then(null, console.error.bind(console));

确保将引导程序也放置在某个地方.

Make sure to place the bootstrap somewhere as well.

只需遵循 angular2快速入门即可.无论如何,这是一个很好的起点

Just follow the angular2 quickstart. That is a good starting point anyways for problems like this

这篇关于Angular 2 Typescript编译器错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆