【问题标题】:Angular2 and TypeScript shows error "cannot find name 'Map' in VS2013Angular2 和 TypeScript 显示错误“在 VS2013 中找不到名称‘地图’
【发布时间】:2016-06-21 08:48:56
【问题描述】:

我正在尝试在 Visual Studio 中使用 TypeScript 构建一个 Angular2 应用程序。我按照 angular2 站点中“5 分钟快速入门”中显示的步骤进行操作。(https://angular.io/guide/quickstart)。但我收到以下错误,如下图所示

谁能帮我解决“找不到名称‘地图’的问题?谢谢高级 package.json文件定义如下

{
  "name": "angular2-quickstart",
  "version": "1.0.0",
  "scripts": {
    "start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ",
    "lite": "lite-server",
    "postinstall": "typings install",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "typings": "typings"
  },
  "license": "ISC",
  "dependencies": {
    "@angular/common":  "2.0.0-rc.2",
    "@angular/compiler":  "2.0.0-rc.2",
    "@angular/core":  "2.0.0-rc.2",
    "@angular/http":  "2.0.0-rc.2",
    "@angular/platform-browser":  "2.0.0-rc.2",
    "@angular/platform-browser-dynamic":  "2.0.0-rc.2",
    "@angular/router":  "2.0.0-rc.2",
    "@angular/router-deprecated":  "2.0.0-rc.2",
    "@angular/upgrade":  "2.0.0-rc.2",
    "systemjs": "0.19.27",
    "core-js": "^2.4.0",
    "reflect-metadata": "^0.1.3",
    "rxjs": "5.0.0-beta.6",
    "zone.js": "^0.6.12",
    "angular2-in-memory-web-api": "0.0.12",
    "bootstrap": "^3.3.6"
  },
  "devDependencies": {
    "concurrently": "^2.0.0",
    "lite-server": "^2.2.0",
    "typescript": "^1.8.10",
    "typings":"^1.0.4"
  }
}

【问题讨论】:

  • 即使我在使用 Visual Studio 2015 时也遇到了类似的问题。但是,即使 map 在 IDE 中显示错误,我的代码也已编译。尝试使用命令提示符编译并使用 Visual Studio Code。这可能会有所帮助。
  • 您是否包含了 tsconfig.json?它有 "sourceMap": true 吗?

标签: visual-studio-2013 typescript angular


【解决方案1】:

我必须更改此处记录的 VS 文件 typescriptServices.js

Invalid module name in augmentation #8518

我现在看到了这个问题。这是 #7415 的副本,应该修复 在下一个版本中(参见 #7507)。

作为目前的解决方法,您可以替换 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TypeScript\typescriptServices.js 文件在 https://raw.githubusercontent.com/Microsoft/TypeScript/Fix8518/lib/typescriptServices.js。 不过,请先进行本地备份。

这与 VS 2015 有关,但下面的某个地方也应该是 VS 2013 的一些解决方案

【讨论】:

  • 尝试在您的tsconfig.json 文件中排除node_modules 文件夹
  • 我整天都在研究这个问题。我尝试 (1) 安装最新的节点 3.10.3 和 npm 6.3.0 (2) 为 Visual Studio 2015 - v1.8.6 安装最新的打字稿 (3) 安装最新的 VS 更新 3。没有任何帮助。这终于摆脱了红色的波浪线。
【解决方案2】:

在谷歌上搜索了很多之后,我终于找到了解决方案,我想与大家分享 只需在组件 .ts 文件的顶部添加以下行

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

看下图

更新
如果你使用 anguler2 beta(angular2/core) 那么你应该添加

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

但是如果你使用 angular2 rc1/rc2/rc3(@angular2/core) 你应该添加

/// <reference path="../node_modules/typescript/lib/lib.es6.d.ts" />

【讨论】:

    【解决方案3】:

    要解决此问题,请打开您的 typings.d.ts 并评论以下行 注释掉下面的代码,它会解决你的问题。

    //declare var module: {
    //  id: string;
    //};
    

    【讨论】:

      猜你喜欢
      • 2016-01-30
      • 2016-01-24
      • 2016-08-10
      • 2017-09-22
      • 2018-11-08
      • 2016-11-12
      • 2017-04-08
      • 1970-01-01
      相关资源
      最近更新 更多