Typescript:是未定义的并集的缩写,字符串是可选的属性类型吗?

Typescript:是未定义的并集的缩写,字符串是可选的属性类型吗?,typescript,Typescript,我觉得这很奇怪,所以有人能确认这两个是相同的吗 interface TypeA { time: string | undefined; } interfaceTypeB { time?: string; } 它们相似,但不完全相同。请尝试以下示例: interface TypeA { time: string | undefined; } interface TypeB { time?: string; } const exampleA: TypeA = {} const ex

我觉得这很奇怪,所以有人能确认这两个是相同的吗

interface TypeA {
 time: string | undefined;
}

interfaceTypeB {
 time?: string;
}

它们相似,但不完全相同。请尝试以下示例:

interface TypeA {
 time: string | undefined;
}

interface TypeB {
 time?: string;
}

const exampleA: TypeA = {}

const exampleB: TypeB = {}
exampleA
将给出一个错误,因为它需要未定义的时间才能显式显示。仅仅省略属性是不够的<代码>示例B未给出错误


是,它们不相同
string |未定义
表示您需要显式设置属性,例如?您可以不设置它,这意味着它未定义。对我来说,这是一种语言上的混乱,但也许我不明白这种差异的原因。