【问题标题】:Unusual behavior, cannot find name 'Array'异常行为,找不到名称“数组”
【发布时间】:2019-05-17 00:02:39
【问题描述】:

我正在尝试在 Angular 7 中使用数组功能,但我遇到了错误消息,cannot find name 'Array'。同样,我无法使用简单的数组方法,如 push 和 pop。

Angular7 不允许我像这样初始化变量:

list: Array<number> = [1, 2, 3];

根本原因是什么,如何解决?

更新:tsconfig.js

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

此外,代码正在编译,没有错误。

神秘的解决方案:我设法通过更新 Visual Studio 代码来解决编译错误。问题尤其是 Visual Studio 代码更新。

【问题讨论】:

  • 这不是连接到 Angular 而是连接到 TypeScript。请添加您的 tsconfig 文件并回答以下问题:Does the code compile on Webpack without any error?
  • @CanK。请检查更新的部分。是的,代码编译成功
  • 你能提供 StackBlitz 吗?或在问题中发布相关代码
  • 这看起来更像是一个 VS Code 问题。如果构建工作没有任何错误...您可以通过从命令行运行 tsc 来缩小范围。我对 VS Code 不熟悉,你能想像重新导入项目吗?

标签: angular typescript ecmascript-6 visual-studio-code


【解决方案1】:

使用最新版本更新您的 VS 代码。这可能会解决您的问题,对我有用!

【讨论】:

    【解决方案2】:

    我也遇到过这个问题!我的 tsc 编译正常,但编辑器出现问题,这是因为 VS 代码使用了不同版本的 TS。

    通过>Typescript: Select TypeScript Version切换到您的配置使用的内容

    作为参考,我的编辑器是 TS v3.4.3,项目是 v3.5.3

    【讨论】:

      【解决方案3】:

      我刚遇到同样的问题,重新启动 VS Code 后错误信息消失了。

      因此,正如其他人所说,问题完全在于编辑器由于某种我不知道的原因而无法正确识别标记。

      【讨论】:

        【解决方案4】:

        您的特定 Angular 设置可能有问题。看看其他人遇到类似问题的这个问题:Angular and Typescript: Can't find names

        看看这是否对您有帮助:npm install --save-dev @types/core-js。它应该显式安装类型定义。

        希望对你有帮助!

        【讨论】:

        • 数组引用问题已解决,但推送定义仍然缺失
        猜你喜欢
        • 2011-03-13
        • 1970-01-01
        • 1970-01-01
        • 2012-03-30
        • 1970-01-01
        • 2013-10-01
        • 1970-01-01
        • 2012-04-13
        • 2015-09-13
        相关资源
        最近更新 更多