javascript - 调用属于联合类型的函数?
问题描述
在此代码示例中:
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
,我们知道函数签名将是什么,所以额外的类型规范感觉是多余的......
解决方案
推荐阅读
- django - 如何在清晰的模型中将图标放置在标签旁边?
- ios - QR 扫描仪不工作但没有出现任何错误?
- c++ - QProcess 无法启动进程:未找到进程
- javascript - Facebook 响应式视频不时加载
- julia - julia/DifferentialEquations 微分方程的正确定义
- amazon-web-services - 地形 | AWS ECS 服务 | 每个 tf apply 所需的计数值更改
- powershell - powershell 命令在单独运行时有效,但在编写脚本时请注意
- c# - C#:从字符串执行代码并引用局部变量
- arrays - 保存 4D 张量的最佳文件类型是什么?
- html - What type of button is this?