gpt4 book ai didi

javascript - typescript :使用外部声明的变量

转载 作者:搜寻专家 更新时间:2023-10-30 21:07:23 24 4
gpt4 key购买 nike

我有一个已迁移到 typescript 的应用程序。在我的 index.html 文件中,我有 2 个文件(实际上,更多,但它们很重要):

  • static.js - 包含声明:var staticData = {...};,由 grunt-json grunt 任务自动构建(不管它做什么,它只是动态生成的)
  • app.js - 这是转储到 js 中的 typescript 源。

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

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

它只是声明 Angular 常量。当我尝试编译此 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 文件变量,我不知道如何让这些文件相互配合......Lodash 的情况是一样的 - 它作为外部脚本加载到 HTML 中。

最佳答案

一个快速的解决方案是使用具有any 类型的环境定义:

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

这将允许您在 TypeScript 中以任何您想要的方式使用这些变量。由此,您可以根据需要开始构建 staticData 的类型信息。

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

关于javascript - typescript :使用外部声明的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31458125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com