11、深入探索TypeScript:类型生成、修改与映射的艺术

深入探索TypeScript:类型生成、修改与映射的艺术

1. 生成新对象类型

在应用程序里,我们常常会遇到这样的问题:存在一个与模型相关的类型,每当模型发生改变时,类型也得跟着改变。为了解决这个问题,我们可以使用泛型映射类型,基于原始类型来创建新的对象类型。

以玩具店的例子来说,我们可以很好地对数据进行建模:

type ToyBase = {
  name: string;
  description: string;
  minimumAge: number;
};
type BoardGame = ToyBase & {
  kind: "boardgame";
  players: number;
};
type Puzzle = ToyBase & {
  kind: "puzzle";
  pieces: number;
};
type Doll = ToyBase & {
  kind: "doll";
  material: "plush" | "plastic";
};
type Toy = Doll | Puzzle | BoardGame;

我们需要将所有玩具分组到一个名为 GroupedToys 的数据结构中, GroupedToys 为每个类别(或“kind”)都有一个属性,其值为 Toy 数组。以下是分组函数:

type GroupedToys 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值