我正在尝试将我的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 = {}
答案 0 :(得分:7)
您可以在分配对象时将对象初始化器强制转换为接口:
var util: Iutil = <Iutil> {};
然后您可以稍后分配该功能。
答案 1 :(得分:3)
另一种选择(我更喜欢)是使用optional
将其标记为?
,因为说实话,只要您开始使用类型断言,它就可能存在或不存在:
interface Iutil { extendRegExp? (any) }
var util: Iutil = {}; // No error