在此代码示例中:
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);
在这种情况下,Typescript 是否会因为缺少打字而吠叫?我们有一个类型保护Function
,我们知道函数签名将是什么,所以额外的类型规范感觉是多余的......