首页 网络技术
  1. 正文

TypeScript如何使用Record

运用Record

Record 是TypeScript的一个高级类型,但是相关的文档并不多,所以经常被人忽略,但是是一个非常强大的高级类型。

Record允许从Union类型中创建新类型,Union类型中的值用作新类型的属性。

举个简单的例子,比如我们要实现一个简单的汽车品牌年龄表,一下写法貌似没有问题。

type Car = 'Audi' | 'BMW' | 'MercedesBenz'const cars = { Audi: { age: 119 }, BMW: { age: 113 }, MercedesBenz: { age: 133 },}

虽然这个写法没问题,但是有没有考虑过类型安全的问题?

比如:

  • 我们忘记写了一个汽车品牌,他会报错吗?

  • 我们拼写属性名错误了,它会报错吗?

  • 我们添加了一个非上述三个品牌的品牌进去,他会报错吗?

  • 我们更改了其中一个品牌的名字,他会有报错提醒吗?

上述这种写法统统不会,这就需要Record的帮助。

type Car = 'Audi' | 'BMW' | 'MercedesBenz'type CarList = Record<Car, {age: number}>const cars: CarList = { Audi: { age: 119 }, BMW: { age: 113 }, MercedesBenz: { age: 133 },}

当我们拼写错误:

当我们少些一个品牌:

当我们添加了一个非约定好的品牌进去:

在实战项目中尽量多用Record,它会帮助你规避很多错误,在vue或者react中有很多场景选择Record是更优解。

本文标题:TypeScript如何使用Record
本文链接:https://www.qqooo.cn/post/7013.html
版权说明:网站文章均来源于手工整理和网友投稿,若有不妥之处请来信 xsds@vip.qq.com 处理,谢谢!