得到错误 - 找不到名字'angular'

问题描述 投票:26回答:6

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

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

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

我是否需要在app.ts中加入一些东西以使tsc了解angular

问候,

angularjs typescript
6个回答
34
投票

您可以简单地告诉编译器通过告诉它“你知道所有关于angular”而不再担心:

declare var angular: any;

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

如果您使用Visual Studio或其他方法为您喜欢的IDE,可以通过NuGet获得类型定义。


17
投票

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

npm install --save-dev @types/angular

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

import * as angular from "angular";

参考:The Future of Declaration Files


7
投票

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


1
投票

原子

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

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

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

希望这可以帮助。祝好运。


0
投票

我通过在“devDependencies”部分中的package.json中添加以下行来解决问题:

"@types/angular" : "1.6.17"

在那之后,我只需要跑

npm install

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


0
投票

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

npm install --save @types/angular

它就像一个魅力。

© www.soinside.com 2019 - 2024. All rights reserved.