返回类型字符串|((args:ValidationArguments)=>字符串)返回什么?

时间:2018-06-12 12:28:20

标签: javascript typescript

这取自line 107 here。我认为这意味着:

  

此函数返回一个字符串或函数,它将ValidationArguments作为参数,然后返回一个字符串。

但这是我第一次见到这样的东西,所以只是想确保我正确地阅读它?

static getMessage(type: string, isEach: boolean): string|((args: ValidationArguments) => string) {

1 个答案:

答案 0 :(得分:1)

是的,你正在读它,它被称为union type。联合类型允许创建可以是联合中任一类型的类型。您可以使用类型保护来缩小联合中的类型:

let f : string|((args: ValidationArguments) => string);
if(typeof f === 'string') {
    f // is string
}else{
    f(null) // f is a function 
}