在 TypeScript 中,如何限定对象键名只能取特定范围内的值?

更新于
2026-09-26 12:32:48
1阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1061个文字,预计阅读时间需要5分钟。

在 TypeScript 中,如何限定对象键名只能取特定范围内的值?

当使用 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, }

现在,把对象的键名限制为上面枚举就行了。

阅读全文
标签:取值

本文共计1061个文字,预计阅读时间需要5分钟。

在 TypeScript 中,如何限定对象键名只能取特定范围内的值?

当使用 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, }

现在,把对象的键名限制为上面枚举就行了。

阅读全文
标签:取值