gpt4 book ai didi

typescript - 之间有什么区别? : and | undefined in TypeScript?

转载 作者:行者123 更新时间:2023-12-03 21:09:48 26 4
gpt4 key购买 nike

我想知道,两者之间是否存在差异(实际或最佳实践明智)

interface Fruit {
cost?: number;
}
interface Fruit {
cost: number | undefined;
}
如果在行为方面存在实际差异,那是什么?
如果没有,为什么更喜欢 | undefined?: (或相反亦然)?
有点困惑,因为我两个都看过,并且不确定是否真的有真正的理由让一个人更喜欢另一个,或者它是否只是归结为偏好。
谢谢!

最佳答案

一个区别是 cost: number | undefined;要求属性存在,并且具有类型为 number 的值或 undefined .相比之下,cost?: number允许该属性根本不存在。
这无法编译:

interface Fruit {
cost: number | undefined;
}
const x: Fruit = {};
要使其正常工作,您必须执行以下操作:
interface Fruit {
cost: number | undefined;
}
const x: Fruit = { cost: undefined };
但这成功了:
interface Fruit {
cost?: number;
}
const x: Fruit = {};
显式键入 undefined当有替代方案时可能会很乏味,所以你可能更喜欢 cost?: number选项。

关于typescript - 之间有什么区别? : and | undefined in TypeScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64655681/

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