我们在代码库中使用了一个cleanNullOrUndefined
函数,如果一个对象的键值为null或未定义,该函数会删除该对象中的键值。这不是一个类型良好的函数,它只返回原始对象的一个Partial
,这会在其他地方产生一些错误。
我们需要的是键入函数以返回对象,并删除为空或未定义的键,并为其他键推断类型。
示例:
const obj = {
a: 1,
b: 'string',
c: false,
d: null,
e: undefined
}
// Desired return type
interface ReturnType {
a: number,
b: string,
c: boolean
}
我好像不知道该怎么做。
2条答案
按热度按时间mm5n2pyu1#
请看这个例子:
Playground
Validate
遍历每个对象键并检查它是否扩展null | undefined
。如果是,则返回never
,否则返回键名Prop
。[keyof T]
-在并从新创建的对象中获取所有值。Pick
-然后再次从T
中仅获取有效键。wfsdck302#
下面的代码可能是答案的一半,我想说明的是,你可以只使用一行代码(链)来获得目标对象:
但可能还有很多,只是为了使结果类型被正确地推断出来。问题是--你真的需要它吗?)