我开始使用TypeScript编写AngularJS应用程序。我有这个简单的模块命令:
(() => {
angular
.module('app', []);
})();
当我运行tsc app.ts
时,我得到了这个:app.ts(2,5): error TS2304: Cannot find name 'angular'.
我是否需要在app.ts
中加入一些东西以使tsc
了解angular
?
问候,
您可以简单地告诉编译器通过告诉它“你知道所有关于angular”而不再担心:
declare var angular: any;
要获得所有良好的工具和类型检查,您需要引入Angular type definition以便编译器知道可用的内容。
如果您使用Visual Studio或其他方法为您喜欢的IDE,可以通过NuGet获得类型定义。
使用AngularJS 1.x和TypeScript 2.x,我通过运行以下方法解决了这个问题:
npm install --save-dev @types/angular
然后在.ts文件的顶部包含以下行:
import * as angular from "angular";
您需要在库中包含angular.t.ds文件
原子
在tsconfig.json
文件中确保您的"fileGlobs"
指向两者: -
tsd
安装的TypeScript定义&src .ts files
"filesGlob": [
"./typings/**/*.ts",
"./src/client/**/*.ts"
]
这将确保您为已安装的库(使用tsd
)提供工具,而无需使用declare
任何变量。例如,如果你tsd install angularjs --save
,你可以用你所有的好工具在你的angular
工作src/../*.ts files
。
希望这可以帮助。祝好运。
我通过在“devDependencies”部分中的package.json中添加以下行来解决问题:
"@types/angular" : "1.6.17"
在那之后,我只需要跑
npm install
为了让npm下载所有需要的依赖项。
对于我在VisualStudio内部,我使用了Augusto建议的部分答案并简单地做了:
npm install --save @types/angular
它就像一个魅力。