Gaj*_*jus 5 javascript flowtype
之间有什么区别:
type MovieType = {|
+blob?: string,
+name: string,
+url?: string
|};
Run Code Online (Sandbox Code Playgroud)
和
type MovieType = $Exact<$ReadOnly<{
blob?: string,
name: string,
url?: string
}>>;
Run Code Online (Sandbox Code Playgroud)
?
我想知道flowtype是否根据它们的定义方式不同地处理对象,或者前者是否仅仅是后者的语法糖.
这两种对象类型应该是等效的。
$ReadOnly<T>使所有属性协变:
$ReadOnly 是表示给定对象类型 T 的只读版本的类型。只读对象类型是其键都是只读的对象类型。
这意味着以下两种类型是等效的:
Run Code Online (Sandbox Code Playgroud)type ReadOnlyObj = { +key: any, // read-only field, marked by the `+` annotation }; type ReadOnlyObj = $ReadOnly<{ key: any, }>;
$Exact<T>接受一个不精确的对象并使其精确:
$Exact<{name: string}> 是 {| 的同义词 name: string |} 如对象文档中所示。
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |