ts中-与+的特殊使用

-? 与 +? 的区别

-? 用于在类型推导中,将属性的可选去掉。如

type Require<T> = { [K in keyof T] -?: T[k]},使Require为T中所有属性变成必须

+? 作用与 -? 相反,将使类型的所有属性变成可选属性。

type Require<T> = { [K in keyof T]+?: T[K]},其中加可以忽略即为:
type Require<T> = { [K in keyof T]?: T[K]}