有没有一种方法可以创建需要对象的所有键的类型?

时间:2020-09-14 08:06:41

标签: javascript typescript

这是我的代码:

interface Props {
    id: string;
    name: string;
    age: number;
};

const keysOfProps: (keyof Props)[] = ['id', 'name']; // This should show a warning because the ``age`` string is missing

我希望这个keysOfProps的类型为['id, 'name', 'age'],而不是('id' | 'name' | 'age')[]

我该如何实现?

1 个答案:

答案 0 :(得分:1)

虽然无法为元组定义所需的类型,但是可以断言给定元组的类型与所有键都匹配。我们可以使用Pick实用程序类型的变体从Props构建类型,该类型包含由元组定义的键,然后我们可以断言结果与原始{{1} }。该解决方案需要几个步骤和一个函数调用,但是以下方法应该可以工作:

Props