optional
字段和T | undefined
字段之间有什么区别?
export interface Demo {
field1: string | undefined
field2?: string
}
答案 0 :(得分:5)
当您尝试使用Demo类型初始化对象时,具有可选字段将不需要您包括该特定属性。
在Scenerio A中,字段1是union type,它允许属性包含类型为string
或undefined
的值。
export interface Demo {
field1: string | undefined;
}
当您尝试初始化类型为Demo的对象时,需要显式包括属性field1
,并在接口上定义所需的类型。
demo: Demo = {
field1: undefined
}
在方案B中,field2
是optional property,
export interface Demo {
field2?: string;
}
当您定义类型为field2
的对象时,不需要包括属性Demo
。
demo: Demo = {}