我注意到react-native UIExplorer - ListViewGridLayoutExample使用了一些我实际上从未见过的奇怪语法。
_pressData: ({}: {[key: number]: boolean}),
// some code ...
_genRows: function(pressData: {[key: number]: boolean}): Array<string> {
var dataBlob = [];
for (var ii = 0; ii < 100; ii++) {
var pressedText = pressData[ii] ? ' (X)' : '';
dataBlob.push('Cell ' + ii + pressedText);
}
return dataBlob;
},
如何理解_pressData
?是那个物体吗?那么 _genRows
方法参数又如何呢?
最佳答案
文件开头的注释包含一个 @flow
指令,这意味着该文件正在使用 http://flowtype.org/用于静态类型检查。
来自网站
What is Flow?
Flow is a static type checker, designed to find type errors in JavaScript programs
另请参阅项目根目录中的 .flowconfig
文件。
要了解 _pressData
是什么,请查看 http://flowtype.org/docs/objects.html特别是底部的“对象作为 map ”部分。
_pressData: ({}: {[key: number]: boolean}),
第一部分{}
只是一个对象文字。如果没有流量,等价物就只是
_pressData:{},
第二部分{[key: number]: boolean}
定义此映射接受的键和值的类型(此表示法意味着我们使用该对象作为映射)。即带有 bool 值的数字键,例如{2:假,19:真}
。
关于javascript [参数 : type] mean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34896702/