我希望将具有可选属性的对象转换为必需的可为null的属性,同时保持必需的属性不变。如果属性的类型为NotNullable,则在转换中不应为null。
例如:
type A {
a: number;
b?: NotNullable<boolean>;
c?: boolean;
}
调用OptionalToNullable实用程序类型应提供以下内容:
type B = OptionalToNullable<A>
/*
{
a: number;
b: boolean;
c: boolean | null;
}
*/
我试过:
export type NotNullable<T> = T extends null ? never : T;
export type OptionalToNullable<O> = {
[K in keyof O]-?: NotNullable<O[K]> extends NotNullable<infer V>
? V
: undefined extends O[K]
? NonNullable<O[K]> | null
: O[K];
};
但不管用有什么建议吗
1条答案
按热度按时间8cdiaqws1#
运动场