@m2d/mdast
Version:
Extended MDAST types and custom node data for mdast2docx with support for DOCX formatting.
13 lines (12 loc) • 534 B
TypeScript
export type Optional<T> = {
[K in keyof T]?: T[K] extends object ? (T[K] extends Function ? T[K] : Optional<T[K]>) : T[K];
};
export type Required<T> = {
[K in keyof T]-?: T[K] extends object ? (T[K] extends Function ? T[K] : Required<T[K]>) : T[K];
};
export type Mutable<T> = {
-readonly [K in keyof T]: T[K] extends object ? T[K] extends Function ? T[K] : Mutable<T[K]> : T[K];
};
export type Immutable<T> = {
readonly [K in keyof T]: T[K] extends object ? T[K] extends Function ? T[K] : Immutable<T[K]> : T[K];
};