【发布时间】:2018-04-28 08:26:21
【问题描述】:
我有一个类,其中的方法当前不存在,但稍后会添加。如果它存在,我想使用该方法,否则不存在。 例如。
Class A {
public func(string s) {
// Currently this method is not present in Class A
}
}
我想检查这个方法是否存在,然后调用它,否则做别的事情。我找到了一个适用于 JavaScript 但不适用于 TypeScript 的解决方案:
let objectOfA = new A();
if ( objectOfA.func === function) {
objectOfA.func();
}
但不知何故,这在 TypeScript 中不起作用,并引发编译错误说 Operator '===' cannot be applied to types 'string' and '() => any'。
有没有一种方法可以检查 TypeScript 中的方法是否存在?
【问题讨论】:
-
只要函数没有实现就注释掉函数调用即可。
-
@Cerbrus 实际上我想签入我的代码,该代码应该在执行不存在的功能之前/之后工作。
-
@Cerbrus 为什么以重复的方式关闭?这个问题是关于 TypeScript 的,而那个问题是关于 JS 的。 TypeScript 确实增加了相当多的难度。如果您尝试检查是否存在不存在的功能,那么工具会喊“这样的字段不存在,不要这样做”,这正是您检查的内容。但是,当您覆盖可能会或可能不会实现的方法时,检查其祖先是否存在是有意义的。
标签: javascript node.js typescript