【问题标题】:Getting Error - Cannot find name 'angular'出现错误 - 找不到名称“角度”
【发布时间】:2015-07-07 01:16:40
【问题描述】:

我开始使用 TypeScript 编写 AngularJS 应用程序。我有这个简单的模块命令:

(() => {
    angular
        .module('app', []);
})();

当我运行tsc app.ts 时,我得到了这个:app.ts(2,5): error TS2304: Cannot find name 'angular'.

我是否需要在app.ts 中添加一些内容才能使tsc 理解angular

问候,

【问题讨论】:

  • 不确定打字稿的具体情况。但在 Javascript 中,您需要加载主要的 Angular 源代码。
  • 是的,在tsc 命令之后,我会像往常一样将一个.js 文件包含到html 页面中。
  • 我明白了,也许您需要告诉 typescript 将 angular 视为全局依赖项..
  • 看看这个项目在打字稿和角度 - github.com/tastejs/todomvc/blob/gh-pages/examples/…

标签: angularjs typescript


【解决方案1】:

确保在tsconfig.jsonfilesGlob 指向并暴露了typings 文件:

"filesGlob": ["typings.d.ts" ]

【讨论】:

    【解决方案2】:

    你可以简单地告诉编译器不要担心,告诉它“你对 angular 了如指掌”:

    declare var angular: any;
    

    要获得所有良好的工具和类型检查,您需要引入 Angular type definition 以便编译器知道可用的内容。

    如果您将 Visual Studio 或其他各种方法用于您最喜欢的 IDE,则可以通过 NuGet 获得类型定义。

    【讨论】:

    • 只是为非视觉工作室人员添加,看看这个工具,以帮助获取单个类型定义,而无需拉下整个回购......github.com/DefinitelyTyped/tsd(可以像凉亭/ npm 通过配置文件)
    • 我今天安装了 nuget 包(DefinitelyTyped)。坏了。
    • 糟糕的解决方案,这会从导入的 *.d.ts 文件中删除任何 typescript 类型支持,用于 angular
    • @sohnee 这是一个很好的假设。也许答案可以重写,所以你不能做出这样的假设。
    • @adam0101 我已经用类型搜索实用程序的链接替换了损坏的like。这将找到任何可用的定义并链接到它的 NPM 页面。
    【解决方案3】:

    在 VisualStudio 内部,我使用了 Augusto 建议的答案的一部分,并且简单地做了:

    npm install --save @types/angular
    

    它就像一个魅力。

    【讨论】:

      【解决方案4】:

      我通过将以下行添加到我的 package.json 中的“devDependencies”部分解决了这个问题:

      "@types/angular" : "1.6.17"
      

      之后,我只需要运行

      npm install
      

      为了让 npm 下载所有需要的依赖项。

      【讨论】:

        【解决方案5】:

        使用 AngularJS 1.x 和 TypeScript 2.x,我通过运行解决了这个问题:

        npm install --save-dev @types/angular
        

        然后在 .ts 文件的顶部包含以下行:

        import * as angular from "angular";
        

        参考:The Future of Declaration Files

        【讨论】:

          【解决方案6】:

          原子

          tsconfig.json 文件中确保您的"fileGlobs" 指向两者:-

          1. 您使用 tsd & 安装的 TypeScript 定义
          2. 你的src .ts files
          "filesGlob": [
            "./typings/**/*.ts",
            "./src/client/**/*.ts"
          ]
          

          这将确保您拥有已安装的库的工具(使用tsd,而无需declare 任何变量。例如,如果您 tsd install angularjs --save,您可以使用所有好工具在您的 src/../*.ts files 中工作 angular

          希望这会有所帮助。祝你好运。

          【讨论】:

            【解决方案7】:

            您需要在库中包含 angular.t.ds 文件

            【讨论】:

            • 你的意思是angular.d.ts。不是吗?我认为您的答案中的文件名有错字。
            猜你喜欢
            • 2016-12-27
            • 2022-12-07
            • 1970-01-01
            • 1970-01-01
            • 2022-11-10
            • 2020-12-15
            • 2015-09-19
            • 2016-12-16
            • 2017-09-29
            相关资源
            最近更新 更多