当前位置: 首页 > 知识库问答 >
问题:

在Typescript中,Record是什么意思?[重复]

朱海超
2023-03-14

我遇到了这个代码-

type Record<K extends keyof any, T> = {
    [P in K]: T;
};

在这里,我明白T

有人能解释一下什么是K吗?请解释一下这个函数返回的样本i/o是什么?

谢谢期待。

共有1个答案

诸葛雨泽
2023-03-14

首先,< code>keyof返回一种类型的所有键的并集。

type BadVector = { x: string, y: boolean }
keyof BadVector // "x" | "y"

因此,K扩展了任何的键,表示K是这样一个联合类型的键。例如,BadVector的key类型将扩展任何中的key。

其次,映射类型将对象的所有键映射到新的值类型。所以 [K 中的 P]:T 表示:将 K 中的每个属性 P 映射到值类型 T

例如,以文档中的示例为例:

interface CatInfo {
  age: number;
  breed: string;
}
 
type CatName = "miffy" | "boris" | "mordred";
 
const cats: Record<CatName, CatInfo> = {
  miffy: { age: 10, breed: "Persian" },
  boris: { age: 5, breed: "Maine Coon" },
  mordred: { age: 16, breed: "British Shorthair" },
};

的类型是记录

 类似资料:
  • 问题内容: 我写Java已有一段时间了,今天我遇到了以下声明: 请注意数组声明中的“点点点”,而不是通常的括号[]。显然可以。实际上,我写了一个小测试并验证了它的有效性。因此,我提取了Java语法,以查看参数声明语法的位置,但未找到任何内容。 那么对那里的专家来说,这是如何工作的呢?它是语法的一部分吗?另外,虽然我可以像这样声明函数,但不能像这样在函数体内声明数组。 无论如何,您知道在哪里记录了此

  • 但是得到了错误:

  • 我很难理解<代码> 结果是15 但是怎么会变成15呢?

  • 请帮助我理解这个表达是什么意思?

  • 我不知道问号(< code >?)在java里代表,我在做一个小程序,一个Nim-game。我们在一本书里寻求帮助,看到了这样一句话: 我不明白,表示,它可以与if语句有关但您将其放在变量中吗?并且可以是“其他”?(我刚才说的这些事情可能会很误导)

  • 在这段代码中是什么意思?

  • 在VSCode中,我把鼠标移动在:GenerateStyle,会显示出如截图的提示,请问下: 1、(alias)是什么意思呢? 2、是对GenerateStyle做了什么吗,才会显示出这个alias? 3、我们看到还有:import GenerateStyle,请问这个在这里有什么用,原因是什么呢?

  • 问题内容: 什么是在这个CSS规则是什么意思? 问题答案: 是相邻的同级组合器。 这意味着选择只选择自带 之后 的。 插图: 选择了什么,没有选择什么: 选择 这个来之后第一。 未选择 这出现在第一后而不是在。由于它不会立即跟随,因此未选中。 但是,由于它仍然紧随元素之后,选择器不会立即匹配此元素,而是将使用通用的同级组合器来匹配该元素。 未选择 这位于内,并且在引号内没有满足其选择器的内容。