簡體   English   中英

TypeScript映射類型中的“ - ?”語法是什么意思?

[英]What does the “-?” syntax mean in TypeScript mapped types?

任何人都可以解釋一下“ - ?” 在下面的TypeScript類型聲明意味着,與僅使用“?”相比 那里?

type ValidationMap<T> = { [K in keyof T]-?: Validator<T[K]> }

這不是通配符。 -? 在TypeScript 2.8中添加了表示法,作為從映射類型中刪除可選修飾符的一種方法。

基本上,這意味着ValidationMap<T>具有與T相同的鍵,但ValidationMap<T>任何屬性都不是可選的,即使T的相應屬性是。 例如:

type Example = ValidationMap<{a: string, b?: number | undefined}>;
// type Example = {a: Validator<string>, b: Validator<number | undefined>}

這里, Example具有必需的b屬性,即使它映射的類型具有可選的b屬性。

(注意,如果你改變-?只是?或者+?它就會相反......你會添加可選的修飾符。 ?作為映射類型功能的一部分,在TypeScript 2.1中添加了?符號,而+?符號是在TypeScript 2.8中引入的-? 。)

希望有所幫助。 祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM