javascript - 打字稿可选字段与可以未定义的字段
问题描述
optional
场和场有什么区别T | undefined
?
export interface Demo {
field1: string | undefined
field2?: string
}
解决方案
当您尝试使用 Demo 类型初始化对象时,拥有可选字段将不需要您包含该特定属性。
在 Scenerio A 中, field1 是一个联合类型,它允许属性包含类型string
或的值undefined
。
export interface Demo {
field1: string | undefined;
}
当您尝试初始化 Demo 类型的对象时,您需要显式包含属性 ,field1
以及在接口上定义的所需类型。
demo: Demo = {
field1: undefined
}
而对于场景 B,whichfield2
是可选属性,
export interface Demo {
field2?: string;
}
field2
当您定义类型的对象时,您将不需要包含该属性Demo
。
demo: Demo = {}
推荐阅读
- api - 如何使用颤振设置锁屏壁纸?
- c# - 多个版本控制 URL 在 Swashbuckle.AspNetCore 5.0.0rc 中不起作用
- javascript - 从 mongoose 文档中获取普通的 javascript 对象(或 JSON-ready 对象)
- c# - 如何使用 GoogleARCore Wrappers (CS0121) 消除那些模棱两可的调用错误
- php - Laravel 批量插入或更新失败
- android - 区分 OnTouchListener 中的短按(单击)和长按
- python - 我们可以使用 eval 函数来获取用户创建的列表吗?
- python - 为什么在 TF 2.0 和 1.15 上训练 DCGAN 时结果会不同?
- javascript - 如何使用酶作为实例()测试功能组件内部的方法,为浅包装器返回 null?
- php - 从 php 返回的 Android 读取数组