[英]What does -? mean in TypeScript?
我在prop-types
的类型定义中遇到了这一行:
export type ValidationMap<T> = { [K in keyof T]-?: Validator<T[K]> };
没有-
这将是一个非常标准的部分映射类型,但我无法在文档中找到它谈论的任何地方-?
.
任何人都可以解释什么-?
方法?
+
或-
允许控制映射的类型修饰符( ?
或readonly
)。 -?
意味着必须全部存在,也就是说它删除了选择性 ( ?
),例如:
type T = {
a: string
b?: string
}
// Note b is optional
const sameAsT: { [K in keyof T]: string } = {
a: 'asdf', // a is required
}
// Note a became optional
const canBeNotPresent: { [K in keyof T]?: string } = {
}
// Note b became required
const mustBePreset: { [K in keyof T]-?: string } = {
a: 'asdf',
b: 'asdf' // b became required
}
读-?
作为remove optionality
,这使得它成为必需的。 这是当前的官方文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.