Type alias Shape<T>

Shape<T>: {
    [K in Field<T>]?: Required<T>[K] extends ((...args) => any)
        ? never
        : Required<T>[K] extends Model<infer I>
            ? Shape<I>
            : Required<T>[K] extends Model<infer I>[]
                ? Shape<I>[]
                : Required<T>[K]
}

Mapped type to compile strongly typed Shapes of classes extending the abstract Model base class, while providing intellisense.

Type Parameters

Generated using TypeDoc