Javascript 流-子类型数组
有两个对象,其中B扩展了A,我可以将B的单个实例分配给A类型的变量。但是,对于数组,这是不可能的。我能做些什么来让这一切顺利吗?谢谢Javascript 流-子类型数组,javascript,flowtype,Javascript,Flowtype,有两个对象,其中B扩展了A,我可以将B的单个实例分配给A类型的变量。但是,对于数组,这是不可能的。我能做些什么来让这一切顺利吗?谢谢 // @flow type ObjectA = { foo: string }; type ObjectB = ObjectA & {bar: number }; let objectBArray: ObjectB[] = [{ foo: 'test', bar: 42 }]; let objectAArray: ObjectA[] = objectBA
// @flow
type ObjectA = { foo: string };
type ObjectB = ObjectA & {bar: number };
let objectBArray: ObjectB[] = [{ foo: 'test', bar: 42 }];
let objectAArray: ObjectA[] = objectBArray; // Does not work!
我自己找到了答案:
let objectAArray: Array<$Subtype<ObjectA>> = objectBArray;
let objectAArray:Array=objectBArray;
未在文档中描述,但似乎是API的正式部分已弃用$Subtype实用程序。这个答案实际上只会导致“any”类型,也就是说类型安全性已经丢失。