角度-找不到名称“地图”

时间:2018-12-01 20:04:17

标签: javascript angular typescript

我开始研究Angular,但是我无法解决将打字稿文件转换为javascript的问题。我已经创建了AngularCLI项目和简单的打字稿文件:

    class Example {
  msg = 'Some message';
}

,我尝试使用tsc命令:tsc example.tsc将其转换为js。这是生成的javascript文件:

var Example = /** @class */ (function () {
    function Example() {
        this.msg = 'Some message';
    }
    return Example;
}());

我有一些错误

node_modules/@types/selenium-webdriver/remote.d.ts:139:29 - error TS2583: Cannot find name 'Map'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.

我认为(甚至可以肯定)问题出在javascript版本中(即使错误也是如此)。这是tsconfig.json文件:

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "module": "es2015",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "importHelpers": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ]
  }
}

所以我做了建议的事情。我将模块,目标,库更改为至少ES2015( 一切都在一起,分别)-它没有帮助。我尝试了SO,jetbrain论坛等提供的许多解决方案,但对我没有任何帮助。

我使用webstorm 2018.3版本。节点版本为10.14.1。 Tsc版本是3.1.6。

1 个答案:

答案 0 :(得分:1)

您更新的using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections.ObjectModel; namespace SimpleGridX { class PersonCollection : ObservableCollection<Person> { public PersonCollection() { // Load the collection with dummy data // Add(new Person() { FirstName = "Elin", LastName = "Binkles", Age = 26, Occupation = "Professional" }); Add(new Person() { FirstName = "Samuel", LastName = "Bourts", Age = 28, Occupation = "Engineer" }); Add(new Person() { FirstName = "Alan", LastName = "Jonesy", Age = 37, Occupation = "Engineer" }); Add(new Person() { FirstName = "Sam", LastName = "Nobles", Age = 25, Occupation = "Engineer" }); } } } 定位到tsconfig.json,现在看起来不错。现在的问题是如何编译。当我问您如何编译时,您写道:

  

...在Webstorm中使用命令行,使用“ tsc filename.tsc”命令。

当我们将文件传递给编译器时,编译器将忽略我们的es2018official tsconfig.json documentation说:

  

在命令行上指定输入文件时,将忽略tsconfig.json文件。

如果要在命令行上传递特定文件并使用特定选项进行编译,请在命令行上传递这些选项(例如tsconfig.json选项)。

lib