调用属于联合类型的函数?

时间:2018-06-13 16:18:05

标签: javascript typescript

在此code sample中:

static replaceMessageSpecialTokens(message: string|((args: ValidationArguments) => string),
                            validationArguments: ValidationArguments): string {

    let messageString: string;
    if (message instanceof Function) {
        messageString = (message as (args: ValidationArguments) => string)(validationArguments);

作者调用函数(当它是一个函数时)如下:

 messageString = (message as (args: ValidationArguments) => string)(validationArguments);

好奇为什么不:

      messageString = message(validationArguments);

在这种情况下,打字稿是否因缺少打字而吠叫?我们有一个类型保护Function,我们知道函数签名将是什么,所以额外的类型规范感觉多余......

0 个答案:

没有答案