如何将TypeScript对象键名限制在特定取值范围内?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1068个文字,预计阅读时间需要5分钟。
当使用 TypeScript 时,我们希望利用其提供的类型系统来限制代码的编写方式,确保对象的键值,并且不超出预期。例如,如果我们有一个对象存储每个年级的人名,类型定义可能如下:
typescripttype Students=Record;
当我们使用 TypeScript 时,我们想利用它提供的类型系统限制代码的方方面面,对象的键值,也不例外。
譬如我们有个对象存储每个年级的人名,类型大概长这样:
type Students = Record<string, string[]>;
理所当然地,数据就是长这样:
const students: Students = { Freshman: ["David", "John"], sophomore: [], Junior: ["Lily"], Senior: ["Tom"], };
限制对象键名为枚举
上面数据类型的问题是,年级是有限的几种可值取,而该对象上可任意添加属性,这样显得数据不够纯粹。
所以我们新增枚举,列出可取的值:
export enum Grade { Freshman, sophomore, Junior, Senior, }
现在,把对象的键名限制为上面枚举就行了。
本文共计1068个文字,预计阅读时间需要5分钟。
当使用 TypeScript 时,我们希望利用其提供的类型系统来限制代码的编写方式,确保对象的键值,并且不超出预期。例如,如果我们有一个对象存储每个年级的人名,类型定义可能如下:
typescripttype Students=Record;
当我们使用 TypeScript 时,我们想利用它提供的类型系统限制代码的方方面面,对象的键值,也不例外。
譬如我们有个对象存储每个年级的人名,类型大概长这样:
type Students = Record<string, string[]>;
理所当然地,数据就是长这样:
const students: Students = { Freshman: ["David", "John"], sophomore: [], Junior: ["Lily"], Senior: ["Tom"], };
限制对象键名为枚举
上面数据类型的问题是,年级是有限的几种可值取,而该对象上可任意添加属性,这样显得数据不够纯粹。
所以我们新增枚举,列出可取的值:
export enum Grade { Freshman, sophomore, Junior, Senior, }
现在,把对象的键名限制为上面枚举就行了。

