我有一个可以接受数组或字符串的函数:
/* @flow */
type Product = Array<string> | string
function printProducts(product: Product) {
if (product.constructor === 'array') {
product.map(p => console.log(p))
} else {
console.log(product)
}
}
Flow抱怨“在字符串中找不到属性Map
”。如何更改我的类型定义以满足此要求?
答案 0 :(得分:3)
使用支持的dynamic type tests之一,在本例中为Array.isArray
:
/* @flow */
type Product = Array<string> | string
function printProducts(product: Product) {
if (Array.isArray(product)) {
product.map(p => console.log(p))
} else {
console.log(product)
}
}