TypeScript中的破折号是什么?

问题描述 投票:0回答:1

不是的意思是question mark syntax,例如,我在问-?

type Required<T> =
  T extends object
    ? { [P in keyof T]-?: NonNullable<T[P]>; } // <---------- "-?" here
    : T;

通过this 2018 GitHub comment。我无法在TypeScript手册的advanced typesutility types章节中找到此语法。

-?如上所述,仍在TypeScript 3.8中编译,并且似乎是?相反,即是否需要密钥?等于Required吗?如果不是,则此语法称为什么,我在哪里可以了解更多?

typescript syntax optional
1个回答
1
投票

您基本上是对的:它从Required中删除了可选的属性修饰符?。它在TypeScript 2.8中作为mapped type的一部分引入。它不是improvements to control over mapped type modifiers (see this link for the docs you want)实用程序类型的[[identical,但是RequiredRequired,没有它就无法存在。

令人遗憾的事实是,TypeScript文档散布在手册,发行说明,FAQ,过时的规范和GitHub问题之间,而没有明确的规范位置来查找任何特定内容。该语言的发展速度超过了文档的发展速度。

好的,希望能有所帮助;祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.