【发布时间】:2019-12-28 04:09:47
【问题描述】:
我正在使用以下代码。
type PersonRow = {
name: string;
email: string;
phone_number: string;
age: number;
}
const personColumnNames: (keyof Omit<PersonRow, 'age'>)[] = [
'name',
'email',
'phone_number'
];
但是,当我从 personColumnNames 中删除 phone_number 时,我想得到一个错误(以防一列被添加到 PersonRow 类型)。
type PersonRow = {
name: string;
email: string;
phone_number: string;
age: number;
}
const personColumnNames: (keyof Omit<PersonRow, 'age'>)[] = [
'name',
'email'
];
编辑:
这是我发现的一种 hacky 方式,但这似乎仍然不太理想。
const personColumnNames = Object.keys(((): { [key in keyof Omit<PersonRow, 'age'>]: null } => ({
name: null,
email: null,
phone_number: null,
}))())
【问题讨论】:
-
所以唯一有效的值是包含三个项目的数组 (
name, email, phone_number)?顺序重要吗? -
是的。顺序无关紧要。
-
this 适合您吗?如果是这样,我会回答。
标签: typescript