在此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
,我们知道函数签名将是什么,所以额外的类型规范感觉多余......