小编Lys*_*dre的帖子

Typescript 重载、可选参数和类型推断

我目前正在研究 Typescript 中的重载。

假设我有一个带有一个重载的函数:

function method(): void;
function method(foo: boolean, bar: boolean): void;
function method(foo?: boolean, bar?: boolean) {
    if (foo === true || foo === false) {
        const result = bar;
    }
}
Run Code Online (Sandbox Code Playgroud)

要么不带参数调用该函数,要么带两个参数(foo 和 bar)调用该函数。根据 vscode 的智能感知,该result变量的类型为boolean | undefined

为什么bar可以undefined,即使我已经测试foo参数?如果foo存在,类型推断不应该预测它也bar存在吗?

overloading type-inference typescript

2
推荐指数
1
解决办法
974
查看次数

标签 统计

overloading ×1

type-inference ×1

typescript ×1