Skip to main content

类型定义中的减号修饰符

-? 修饰符

期望将指定类型定义中的可选变量全部改为不可选变量,并返回新的类型。

type A = {
name?: string;
};

// 期望 B
type B = {
name: string; //可选取消了
};

实现:

type Format<T> = {
[P in keyof T]-?: T[P];
};

-readonly 修饰符

期望将指定类型中的 readonly 属性全部改为可修改,并返回新的类型。

type A = {
readonly name: string;
};

// 期望 B
type B = {
name: string; //只读取消了
};

实现:

type Format<T> = {
-readonly [P in keyof T]: T[P];
};