流类型,属性前面的`+`符号是啥意思?
Posted
技术标签:
【中文标题】流类型,属性前面的`+`符号是啥意思?【英文标题】:Flow type, What does the `+` symbol mean in front a property?流类型,属性前面的`+`符号是什么意思? 【发布时间】:2018-03-02 11:57:09 【问题描述】:我遇到了以下用 js FlowType 编写的代码(我很想知道 FlowType 上下文中 + 的值,而不是一般的 JS)。
您能否解释一下下面代码中属性前面的+
符号是什么意思:
export type User =
+name: string,
+surname: string,
+personId: PourceId,
我在文档中找不到任何参考,也欢迎任何链接。
【问题讨论】:
What does the plus sign do in '+new Date'的可能重复 不是重复的,它是 Flowtype 特有的。 正确,这不是重复我对 Flowtype 上下文中的 + 感兴趣。 【参考方案1】:属性前面的+
符号表示该属性是只读的
参考:https://flow.org/en/docs/types/interfaces/#toc-interface-property-variance-read-only-and-write-only
【讨论】:
【参考方案2】:经过一些额外的研究,我发现+/-
表示属性的协变或逆变。
interface MyInterface
+covariant: number; // read-only
-contravariant: number; // write-only
关于方差的有趣文章:
https://flow.org/en/docs/lang/variance/
https://flow.org/en/docs/types/interfaces/#toc-interface-property-variance-read-only-and-write-only
【讨论】:
【参考方案3】:“+”符号表示该属性是只读和 '-' 表示该属性是只写并且如果没有任何'+'或'-' 符号表示该属性同时具有读/写访问权限。它可以在定义接口属性或类型属性时使用。
文档可在以下链接中找到:https://flow.org/en/docs/types/interfaces/#toc-interface-property-variance-read-only-and-write-only
【讨论】:
以上是关于流类型,属性前面的`+`符号是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
在这个 C90 未定义的行为定义中,“有符号或无符号类型”是啥意思?