我有一个迁移到打字稿的应用程序.在我的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.
原文地址:https://codeday.me/bug/20191028/1949761.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。