相关疑难解决方法(0)

禁止与任何人通话

考虑以下函数重载:

function f(key: undefined);
function f(key: string | undefined, value: object | undefined);
Run Code Online (Sandbox Code Playgroud)

我希望使用单个显式未定义来进行符合条件的调用f(undefined),但是对于所有其他情况需要两个参数.并且上面的工作正常,直到我传递一个带有类型的变量any - 似乎any可以被转换为undefined(是的,它似乎是合乎逻辑的,因为它是任何).

我如何禁止与单个anyargumnent通话?


完整的演示代码:

function f(key: undefined);
function f(key: string | undefined, value: object | undefined);

function f(key: string | undefined, value?: object | undefined) {
    console.log(key, value);
}

// No errors - RIGHT
f(undefined);
f("", {});
f("", undefined);
f(undefined, undefined);
f(undefined, {});

// Errors - RIGHT
f("");

// No errors - WRONG
declare var …
Run Code Online (Sandbox Code Playgroud)

typescript

4
推荐指数
1
解决办法
270
查看次数

标签 统计

typescript ×1