在 Typescript 中添加函数之前,如何将变量声明为空对象
How can I declare a variable to be an empty object before I add functions to it in Typescript?
我正在尝试将我的javascript转换为Typescript,并提出了另一个问题。这是我的代码:
var util = {};
然后在代码的后面:
util.extendRegExp = function (regex, pre, post) {
if (pre === null || pre === undefined) {
pre = "";
}
if (post === null || post === undefined) {
post = "";
}
我尝试声明这样的接口:
interface Iutil = { extendRegExp (any) }
...
...
var util: Iutil = {};
但现在我收到一条错误消息,说:
Can't convert {} to Iutil. util is missing the property extendRegExp
有没有办法做var util = {}
您可以在
分配空对象时断言该空对象为接口类型:
var util: Iutil = {} as Iutil;
然后,您可以稍后分配该函数。
如果 TypeScript 仍然抱怨(例如,类型之间没有重叠或类似的东西),那么你可以对any
做一个断言,然后对你的接口做一个断言:
var util: Iutil = {} as any as Iutil;
另一种
选择(我更喜欢)是使用 ?
将其标记为optional
,因为老实说,一旦开始使用类型断言,它就可能存在也可能不存在:
interface Iutil { extendRegExp? (any) }
var util: Iutil = {}; // No error
相关文章:
- 使用同一对象中的其他变量声明变量
- 如何将变量声明为全局变量
- 如何将变量声明为全局变量?用case foreach?Javascript
- 理解bootstrap.js变量声明
- 将 Javascript 变量声明为 PHP 形式
- 单个逗号分隔的变量声明和多个声明之间的区别是什么
- Do变量声明初始化函数
- Javascript变量声明:什么是“;var myVariable={}”;
- javascript中不同类型的变量声明
- 为什么在循环的Javascript中包含变量声明
- for 循环中必需的变量声明
- JavaScript 中的变量声明
- 在 Javascript 变量声明中使用逗号
- 你能在变量声明中添加条件吗?
- JavaScript 全局变量声明
- 节点.js变量声明和作用域
- 具有多个逗号分隔值的变量声明是什么意思(例如 var a = b,c,d;)
- 移动图像 ..JavaScript 将变量声明为字符串
- 让 javascript 将(默认情况下)未声明的变量声明到当前本地范围(基于首次使用)而不是全局范围
- 循环中的变量声明