如何在Flow中实现传入/传出任意键对象的类型标注?
为无属性限制的对象参数/返回值添加Flow类型
没问题,针对你这种参数和返回值都是无任何属性限制的对象的场景,有两种简洁的方式可以给myFunc添加Flow类型标注:
方式一:使用Object类型(最简洁)
Object在Flow中泛指任意非原始类型的对象,刚好匹配你“属性无限制”的需求:
// @flow const myFunc = (a: Object, b: Object): Object => { // magic const c = {}; // 示例返回对象 return c; };
方式二:使用索引签名(更明确)
如果你想更清晰地表达“任意字符串键对应任意类型值”的对象结构,可以用索引签名语法{ [key: string]: mixed }:
// @flow const myFunc = (a: { [key: string]: mixed }, b: { [key: string]: mixed }): { [key: string]: mixed } => { // magic const c = {}; // 示例返回对象 return c; };
两种方式都能满足你的需求:
- 第一种写法更简洁,适合快速标注;
- 第二种写法更直观地体现了对象的“无属性限制”特性,可读性更强。
内容的提问来源于stack exchange,提问作者Zerium
相关产品推荐
相关产品推荐

