如何实现一个类型GetRidOfNeverValues<T>,它删除一个对象类型的所有条目(比方说:Record<string, any>),其中的值永远不是?
例如
type A = {
a: number;
b: string;
c: never;
};
type B = GetRidOfNeverValues<A>;
/*
type B shoud now be:
{
a: number;
b: string;
}
*/发布于 2022-08-13 13:16:16
您可以使用这一技术创建一个助手类型:
type RemoveValues<T, U> = { [P in keyof T as T[P] extends U ? never : P]: T[P] }我们可以从中派生出RemoveNever
type RemoveNever<T> = RemoveValues<T, never>或者,如果您只想要GetRidOfNeverValues类型:
type GetRidOfNeverValues<T> = { [P in keyof T as T[P] extends never ? never : P]: T[P] }
// same as RemoveNeverhttps://stackoverflow.com/questions/73344544
复制相似问题