如何从对象中提取类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从对象中提取类型相关的知识,希望对你有一定的参考价值。

我有地图:

const Map = {
  key1: 'value1',
  key2: 'value2'
}

我想使用上述对象创建类型value1 | value2。是否可以不重复这些值?

我尝试过type MyType = Map.key1 | Map.key2,但是会引发以下错误:Cannot find namespace 'Map'

答案
const MyArray = [
    { name: "Alice", age: 15 },
    { name: "Bob", age: 23 },
    { name: "Eve", age: 38 }
];
type T = (typeof MyArray)[number];

const data = {
  value: 123,
  text: 'text',
  subData: {
    value: false
  }
};
type Data = typeof data;
另一答案

为地图编制索引只会获取值,而不是实际类型。使用此,您可以获取值的类型

const myMap = {
  key1: 'value1',
  key2: 'value2'
}

type myType = typeof myMap["key1"] | typeof myMap["key1"] 

以上是关于如何从对象中提取类型的主要内容,如果未能解决你的问题,请参考以下文章

使用从循环内的代码片段中提取的函数避免代码冗余/计算开销

如何从对象中提取类型

Oracle (pl-sql) - 如何从文本中提取特定数据到对象类型变量中?

如何从片段中的 JSON 响应中的对象获取数据

如何从 RCNN 中裁剪分割的对象?

从 TypeScript 类型定义或 GraphQL 片段定义生成 JavaScript 空对象