【问题标题】:How to declare nested partial type for complex types?如何为复杂类型声明嵌套的部分类型?
【发布时间】:2020-11-26 16:51:42
【问题描述】:

我试图做所有JSONSchemaType 嵌套属性可选。 我试过(来自this 答案):

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[] |嵌套部分 |未定义

没有简单的方法吗?

【问题讨论】:

    标签: typescript


    【解决方案1】:

    我找到了解决方法 -

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

    【讨论】:

      猜你喜欢
      • 2016-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      相关资源
      最近更新 更多