微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScript-Typescript:使用外部声明的变量

我有一个迁移到打字稿的应用程序.在我的index.html文件中,我有2个文件(实际上,还有很多,但是那很重要):

> static.js-包含声明:var staticData = {…} ;,由grunt-json grunt任务自动构建(不要管它做什么,它是动态生成的)
> app.js-这是转入js的打字稿源.

一个.ts文件,用于构建app.js,其内容如下:

mp.core.CoreModule
.constant('CONfig', staticData.config)
.constant('lodash', _)

它只是在声明角度常数.当我尝试编译此打字稿文件时,出现以下错误

Running "typescript:app" (typescript) task
>> app/modules/core/coreModuleConfig.ts(2,21): error TS2304: Cannot find name 's
taticData'.
>> app/modules/core/coreModuleConfig.ts(3,21): error TS2304: Cannot find name '_
'.
Warning: Task "typescript:app" Failed. Use --force to continue.

我能理解这个问题-打字稿不知道这些变量是什么.问题是staticData是一个js文件变量,我不知道如何使这些文件相互兼容… Lodash的情况是相同的-它作为外部脚本加载到HTML中.

解决方法:

一种快速解决方案是使用任何类型的环境定义:

declare var staticData: any;
declare var _: any;

这样您就可以在TypeScript中以所需的任何方式使用这些变量.由此,您可以根据需要开始为staticData建立类型信息.

请注意,对于_,您可以仅在项目中包含lodash.d.ts定义文件.那已经为您定义了lodash的所有类型信息.您可以找到here.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐