如何为复杂类型声明嵌套的分部类型



我尝试将所有JSONSchemaType嵌套的property都做为可选。我试过了(根据这个答案(:

import { JSONSchemaType as _JSONSchemaType } from "ajv";
type NestedPartial<T> = {
[K in keyof T]?: T[K] extends Array<infer R> ? Array<NestedPartial<R>> : NestedPartial<T[K]>
};
export declare type JSONSchemaType<T> = NestedPartial<_JSONSchemaType<T>>;
const a: JSONSchemaType<number> = { minimum:2 };

错误为-类型"number"不可分配给类型"NestedPartial<未知>[]|嵌套部分<任意>|未定义

没有简单的方法吗?

我找到了修复它的方法-

type NestedPartial<T> = {
[K in keyof T]?: T[K] extends Array<infer R> ? Array<NestedPartial<R>> : (T[K] extends unknown ? unknown : NestedPartial<T[K]>)
};

最新更新