打字稿:函数参数中的并集导致错误

时间:2019-04-09 14:10:48

标签: javascript typescript

从Flow来看,这过去很好,但在TS中显然不是这样,我在网上找不到合适的示例:

type Props = {
    fnA(string, string | object): void; 
                    // ^ Unexpected token, expected "," 
    fnB(string, any): void; // No problems with this 
}

为函数参数编写联合类型的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

这就是TypeScript语法的独特之处:在函数类型中,必须为所有参数命名:

set.seed(24)
df_Temp <- data.frame(ATYPE = sample(letters[1:5], 20, replace = TRUE),
    AFTER_ADM = sample(0:1, 20, replace = TRUE), CHRGES = rnorm(20))

在第二个功能type Props = { fnA(a: string, b: string | object): void; fnB(string, any): void; // string, any are parameter names, not types } 中,fnBstring不能被混淆地解释为类型,而是具有隐式any类型的参数名称-如果您有{{ 1}}选项打开,您将得到一个错误消息。