Typescript:使用外部声明的变量
typescript: using variables declared externally
我有一个迁移到typescript的应用程序。在我的index.html文件中,我有两个文件(实际上,更多,但这些都很重要):
- static.js -其中包含声明:
var staticData = {...};
,由grunt-json
grunt任务自动构建(不管它做什么,它只是动态生成的) - app.js -这是转储到js中的typescript源。
有一个用于构建app.js
的.ts文件,其内容如下:
mp.core.CoreModule
.constant('CONFIG', staticData.config)
.constant('lodash', _)
它只是声明了角常数。当我尝试编译这个typescript文件时,我得到以下错误:
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.
我能理解这个问题——typescript不知道这些变量是什么。问题是staticData是一个js-file变量,我不知道如何使这些文件相互处理……Lodash的情况是相同的——它作为外部脚本加载到HTML中。
一个快速的解决方案是使用any
类型的环境定义:
declare var staticData: any;
declare var _: any;
将允许你在TypeScript中以任何你想要的方式使用这些变量。在此基础上,如果您愿意,可以开始构建staticData
的类型信息。
请注意,对于_
,您可以在项目中包含lodash.d.ts
定义文件。它已经为您定义了lodash的所有类型信息。你可以在这里找到
相关文章:
- 使用同一对象中的其他变量声明变量
- 用||声明变量
- 使用javascript使用for循环声明变量
- JavaScript-用for循环项声明变量
- try声明变量的作用域
- 有没有一种方法可以使用函数参数的值来声明变量
- 在使用javascript再次声明变量之前,请先清除或删除该变量
- Javascript未声明变量
- 在Javascript中,我可以在声明变量之前使用它吗
- 在html文档的开头声明变量
- 按什么顺序声明变量和函数
- 如何以正确的方式在jQuery中声明变量
- 在 Angular 服务中接收函数的未声明变量
- 字典和声明变量
- 需要一些有关以以下样式声明变量的信息
- 在 jQuery 中使用常量声明变量
- 从外部文件在打字稿中声明变量得到引用错误:..未定义
- JavaScript,声明变量时混淆语法
- 在 javascript 函数和内存管理中声明变量
- Javascript 使用 if 语句声明变量