gpt4 book ai didi

typescript - 更好的 TypeScript 推断可以返回多个不同对象的函数的返回类型

转载 作者:行者123 更新时间:2023-12-02 03:01:16 25 4
gpt4 key购买 nike

我有一个这样的函数:

function foo() {
if (Math.random() < 0.5) {
return {
a: 5
};
}

return {
b: false
};
}

TypeScript 将返回类型推断为:

function foo(): {
a: number;
b?: undefined;
} | {
b: boolean;
a?: undefined;
}

就我的目的而言,如果将其推断为:

function foo(): {
a: number;
} | {
b: boolean;
}

我知道我可以通过在 foo 的定义中手动包含返回类型来强制执行此操作。但我问这个问题是因为实际上我有一个具有更复杂返回值的函数,并且我不想手动编写返回值的类型,然后永远保持同步。

有什么方法可以让 TypeScript 像我想要的那样自动推断返回类型吗?

最佳答案

奇怪的是,如果您首先将返回值分配给临时变量,则返回类型就是您所期望的:

function foo() {
if (Math.random() > 0.5) {
const ret = { a: 5 };
return ret;
} else {
const ret = { b: false };
return ret;
}
}

关于typescript - 更好的 TypeScript 推断可以返回多个不同对象的函数的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59923183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com