Typescript数组对象属性值作为类型

大卫·纳塔奈尔

是否可以将对象数组的值用作类型?

// this array is static
export const events = [
    {
        id: 1,
        key: 'clickedButton',
    },
    {
        id: 2,
        key: 'clickedLink',
    },
    {
        id: 3,
        key: 'clickedImage',
    },
] as const;

type Keys = //<-- How do I get this to : "clickedButton" | "ClickedLink" | "ClickedImage"

const dispatchEvent(key: Keys) => {
    const event = events.find(e => e.key === key);
    ...
}

我试过了

const keys = events.map((e) => e.key);

type Keys = typeof keys.values;

等于

() => IterableIterator<"clickedButton" | "ClickedLink" | "ClickedImage">

当我尝试使用.find()之后这不起作用

根本不可能吗?

内纳德

您可以使用:

type Keys = typeof events[number]["key"]; // "clickedButton" | "clickedLink" | "clickedImage"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

对象属性值作为类型

Typescript - 将“以承诺作为属性的对象”-类型转换为“以已解决的承诺值作为属性的对象”-类型

创建作为对象属性数组的类型

提取数组值作为Typescript类型

从 Typescript 中对象数组的属性中提取键/值对象类型

从 Typescript 中的属性值推断对象的类型

对象数组作为属性

从对象数组中,提取属性值作为数组

从对象数组中,仅提取属性的特定值作为数组

如何在作为对象数组的类型上添加属性?

Typescript对象属性类型

如何从函数参数中获取对象属性值作为类型

对象中的ConvertTo-Json,数组作为属性值

JavaScript:从对象数组的对象数组中,提取属性的值作为数组

从数组类型创建对象类型,其中键是数组中每个对象的属性值

为通用对象中的类数组属性值添加类型

数组作为对象中的属性

TypeScript-根据属性值将对象移出数组

Typescript递归映射对象属性类型:对象和数组元素类型

Typescript枚举值作为数组

条件对象作为数组值

从数组到对象的TypeScript类型

Typescript 类型,用于检查给定键是否作为对象的键传递给解析为数组

Typescript:对象类型到数组类型(元组)

Typescript对象类型转换为数组类型

从对象的数组和数组中提取对象的属性作为数组

对象数组:作为数组键的值?

使用对象属性的类型作为函数参数

如何使用对象键作为字符串和混合类型的值来流动类型对象数组