如何从对象中提取类型

问题描述 投票:1回答:2

我有地图:

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

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

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

typescript
2个回答
1
投票
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;

0
投票

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

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

type myType = typeof myMap["key1"] | typeof myMap["key1"] 
© www.soinside.com 2019 - 2024. All rights reserved.