我想将某些字段的数据更改为自定义类型.
例如,我想将TSomeType的b字段更改为自定义类型,以获得TSomeTypeConverted类型.
// original type
type TSomeType = {
a: boolean;
b: string;
}
// result what I want
type TSomeTypeConverted = {
a: boolean;
b: TCustomType;
}
通过应用下面的TConvertToCustomType获得了类似的结果.
type TConvertToCustomType<T, K extends keyof T> = Omit<T, K> & {[P in K]: TCustomType};
type TSomeTypeConverted = TConvertToCustomType<TSomeType, 'b'>
/* type TSomeTypeConverted = {
a: boolean;
b: TCustomType;
} */
但是,在此过程中,所有可选值都更改为required.
// before
type TSomeType = {
a: boolean;
b: string;
c?: string; // optional
}
type TSomeTypeConverted = TConvertToCustomType<TSomeType, 'b' | 'c'>
/* type TSomeTypeConverted = {
a: boolean;
b: TCustomType;
c: TCustomType; // not optional anymore
} */
有没有一种方法可以在保持可选状态的同时只更改类型?