这是我的代码:
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')[]
我该如何实现?
答案 0 :(得分:1)
虽然无法为元组定义所需的类型,但是可以断言给定元组的类型与所有键都匹配。我们可以使用Pick
实用程序类型的变体从Props
构建类型,该类型包含由元组定义的键,然后我们可以断言结果与原始{{1} }。该解决方案需要几个步骤和一个函数调用,但是以下方法应该可以工作:
Props