检查TypeScript中的类是否存在方法

时间:2017-11-15 07:42:15

标签: javascript node.js typescript

我正在上一个课程,其中一个方法目前不存在,但稍后会添加。如果不存在,我想使用该方法。 例如。

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中检查方法是否存在?

1 个答案:

答案 0 :(得分:4)

您可以使用typeof运算符来获取操作数的ty。虽然使用括号表示法来获取未知属性(以避免抛出异常)。

let objectOfA = new A();
if ( typeof objectOfA['func'] === 'function') {
    objectOfA.func();
}