Bag*_*ong 4 optional-parameters optional typescript
我想知道,两者之间是否存在差异(实际或最佳实践明智)
interface Fruit {
cost?: number;
}
Run Code Online (Sandbox Code Playgroud)
和
interface Fruit {
cost: number | undefined;
}
Run Code Online (Sandbox Code Playgroud)
如果在行为方面存在实际差异,那是什么?
如果没有,为什么会更喜欢| undefined或?:(反之亦然)?
有点困惑,因为我两者都看过,并且不确定是否真的有真正的理由让一个人更喜欢另一个,或者它是否只是归结为偏好。
谢谢!
一个区别是cost: number | undefined; 要求属性存在,并且具有类型为numberor的值undefined。相反,cost?: number允许属性根本不存在。
这无法编译:
interface Fruit {
cost: number | undefined;
}
const x: Fruit = {};
Run Code Online (Sandbox Code Playgroud)
要使其正常工作,您必须执行以下操作:
interface Fruit {
cost: number | undefined;
}
const x: Fruit = { cost: undefined };
Run Code Online (Sandbox Code Playgroud)
但这成功了:
interface Fruit {
cost?: number;
}
const x: Fruit = {};
Run Code Online (Sandbox Code Playgroud)
undefined当有替代方案时,显式键入可能会很乏味,因此您可能更喜欢该cost?: number选项。
| 归档时间: |
|
| 查看次数: |
33 次 |
| 最近记录: |