我有一个与此相匹配的特定界面:
interface Example {
field_a: number | null;
field_b: readonly string[];
readonly field_c: string;
nested: {
field_d: readonly unknown[]
}
}
我想应用一个Mutations 并删除所有只读内容,如下所示:
type Mutable<T> = {
-readonly [K in keyof T]: T[K] extends Readonly<T[K]> ? Mutable<T[K]> : T[K];
};
创建一个新的类型Mutable<Example>
,将应用Mutate到所有字段,即使它是不需要的,所以如果我悬停在field_a
,应用的类型是Mutable<number | null>
,这不是我想要的.
我需要最终的结果是如下所示的这个特定的例子(当做Mutable<Example>
),但应该是足够的动态处理不同的接口.
type TransformedExample = {
field_a: number | null;
field_b: string[];
field_c: string;
nested: {
field_d: unknown[]
}
}
提前感谢您的帮助!