我正在上一个课程,其中一个方法目前不存在,但稍后会添加。如果不存在,我想使用该方法。 例如。
Class A {
public func(string s) {
// Currently this method is not present in Class A
}
}
我想检查一下,如果此方法存在,则调用它,否则执行其他操作。我在互联网上搜索并找到了JavaScript:
let objectOfA = new A();
if ( objectOfA.func === function) {
objectOfA.func();
}
但是这在某种程度上不适用于TypeScript并抛出编译错误Operator '===' cannot be applied to types 'string' and '() => any'
。
我有没有办法在TypeScript中检查方法是否存在?
答案 0 :(得分:4)
您可以使用typeof
运算符来获取操作数的ty。虽然使用括号表示法来获取未知属性(以避免抛出异常)。
let objectOfA = new A();
if ( typeof objectOfA['func'] === 'function') {
objectOfA.func();
}