Typescript 使属性可选但不';t将值设置为未定义的并集
实用程序类型Typescript 使属性可选但不';t将值设置为未定义的并集,typescript,type-systems,Typescript,Type Systems,实用程序类型Partial不仅将类型的键设置为可选,还将它们的值设置为未定义的并集: type Obj = { foo: number } type PartialObj = Partial<Obj> // { foo?: number | undefined } type Obj={foo:number} 类型PartialObj=Partial/{foo?:number | undefined} 是否存在会导致:{foo?:number}简短回答的实用程序类型 是否存在会导致
Partial
不仅将类型的键设置为可选,还将它们的值设置为未定义的并集:
type Obj = { foo: number }
type PartialObj = Partial<Obj> // { foo?: number | undefined }
type Obj={foo:number}
类型PartialObj=Partial/{foo?:number | undefined}
是否存在会导致:{foo?:number}
简短回答的实用程序类型
是否存在会导致:{foo?:number}
的实用程序类型
不存在该应用程序的实用程序类型
为什么??TypeScript将{foo?:number}
和{foo?:number |未定义}
视为相同的类型
一些探索
下面是VS代码中的悬停结果,这表明两种类型具有相同的结果
在某些方面,这是有意义的,因为不存在的属性等于未定义的属性。这里,obj1
没有foo
属性,但是foo
属性是未定义的的三倍
constobj1={};
常数obj2={
foo:未定义
};
console.log(obj1.foo==未定义);
console.log(obj2.foo==未定义)代码>