小编use*_*296的帖子

TypeScript:使用 keyof 索引对象类型

我有一个按键嵌套的对象,如下所示:

const OBJECTS = {
    OBJECT1: {
        properties: {
            prop1: { value: "a" },
        },
    },
    OBJECT2: {
        properties: {
            prop2: { value: "b" },
        },
    },
} as const;
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个通用类型,在其中提取特定对象的属性值 - 类似于:

type PropertiesForObject<OBJECT_KEY extends keyof typeof OBJECTS> = {
    [PROPERTY_NAME in keyof typeof OBJECTS[OBJECT_KEY]["properties"]]: typeof OBJECTS[OBJECT_KEY]["properties"][PROPERTY_NAME]["value"];
};
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

Type '"value"' cannot be used to index type '{ readonly OBJECT1: { readonly properties: { readonly prop1: { readonly value: "a"; }; }; }; readonly OBJECT2: { readonly properties: { …
Run Code Online (Sandbox Code Playgroud)

types typescript

2
推荐指数
1
解决办法
4067
查看次数

标签 统计

types ×1

typescript ×1