Typescript可选字段vs可以不确定的字段

时间:2019-08-09 03:59:20

标签: javascript typescript

optional字段和T | undefined字段之间有什么区别?

export interface Demo {
  field1: string | undefined
  field2?: string
}

1 个答案:

答案 0 :(得分:5)

当您尝试使用Demo类型初始化对象时,具有可选字段将不需要您包括该特定属性。

在Scenerio A中,字段1是union type,它允许属性包含类型为stringundefined的值。

export interface Demo {
  field1: string | undefined;
}

当您尝试初始化类型为Demo的对象时,需要显式包括属性field1,并在接口上定义所需的类型。

demo: Demo = {
  field1: undefined
}

在方案B中,field2optional property

export interface Demo {
  field2?: string;
}

当您定义类型为field2的对象时,不需要包括属性Demo

demo: Demo = {}