Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript:分隔联合类型的每个成员_Typescript_Discriminated Union - Fatal编程技术网

Typescript:分隔联合类型的每个成员

Typescript:分隔联合类型的每个成员,typescript,discriminated-union,Typescript,Discriminated Union,我有一个生成的联合类型,看起来像: type Result = { type: 'car' } | { type: 'boat' } 如何将它们分开,以便为每种类型创建单独的类型?例如: type BoatResult = { type: 'boat' } type CarResult = { type: 'card' } 必须从原始的结果类型创建它们。您可以使用提取条件类型来提取,从扩展给定类型的并集中获取类型。如果您的联合实际上和问题中一样简单,那么它没有多大意义,但是如果您有额外的字段

我有一个生成的联合类型,看起来像:

type Result = { type: 'car' } | { type: 'boat' }
如何将它们分开,以便为每种类型创建单独的类型?例如:

type BoatResult = { type: 'boat' }
type CarResult = { type: 'card' }

必须从原始的
结果
类型创建它们。

您可以使用
提取
条件类型来
提取
,从扩展给定类型的并集中获取类型。如果您的联合实际上和问题中一样简单,那么它没有多大意义,但是如果您有额外的字段,您可以使用它从联合中提取完整类型

type Result = { type: 'car', a: number } | { type: 'boat', b: string }

type Car = Extract<Result, { type: 'car' }> //{ type: 'car', a: number }
type Boat = Extract<Result, { type: 'boat'} > // { type: 'boat', b: string }
type Result={type:'car',a:number}{type:'boat',b:string}
type Car=Extract/{type:'Car',a:number}
type Boat=Extract/{type:'Boat',b:string}