首页 文章

Angular 2 Typescript编译器错误

提问于
浏览
2

我认为是时候在开发中使用Angular2,所以我想开始,但我一直坚持使用TS编译器引发的Error . 我使用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:找不到名字承诺“:

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 {}

所以我看到它无法找到承诺和 Map .

1 回答

  • 1

    对于基本的angular2应用程序,必须包含这些脚本,当包含angular2-polyfill时,不需要ES6-shim:

    <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脚本来加载您的应用:

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

    确保将引导程序放在某处 .

    只需按照angular2 quickstart即可 . 对于像这样的问题,这是一个很好的起点

相关问题