gpt4 book ai didi

TypeScript:从某种类型创建联合类型的字符串

转载 作者:行者123 更新时间:2023-12-01 21:30:42 24 4
gpt4 key购买 nike

我有一个 IconName 类型,如下所示:

type IconName = 'cars' | 'mars' | 'truck' | 'warning'

然后我想创建另一种 VehicleIconName 类型,其中包含与车辆相关的所有图标名称:

type VehicleIconName = 'cars' | 'truck'

但是我如何告诉 TypeScript VehicleIconName 中的每个字符串也必须是 IconName 类型?

所以我不能这样写:

type VehicleIconName = 'cars' | 'truck' | 'invalidIconName'

最佳答案

你可以添加一个助手类型:

type Subset<Parent, Sub extends Parent> = Extract<Parent, Sub>;

type IconName = 'cars' | 'mars' | 'truck' | 'warning'

type VehicleIconName = Subset<IconName, 'cars' | 'truck' | 'invalidName'>

最后一行错误:

Type '"cars" | "truck" | "invalidName"' does not satisfy the constraint 'IconName'.
  Type '"invalidName"' is not assignable to type 'IconName'.ts(2344)

关于TypeScript:从某种类型创建联合类型的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62573626/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com