如何传递一个包含Flow中的许多键和值的对象的变量?
问题描述:
我是新来的Facebook流量。如何传递一个包含Flow中的许多键和值的对象的变量?
https://github.com/facebook/flow
目前,我有一类这样的事情,我不喜欢我在构造函数的参数为长。
class SamplePerson {
constructor(obj: {id: string, name: string, age: number, height: number, birthdate: string, sex: string, weight: number}') {
this._id = obj.id;
this._name = obj.name;
this._age = obj.age;
this._height = obj.height;
this._weight = obj.weight;
this._birthdate = obj.birthdate;
this._sex = obj.sex;
}
}
所以,而不是像上面的东西,我希望它是这样的东西在下面。
什么是将包含类型信息的变量传递给构造函数的参数的适当方式?
像这样的事情
const objType = {id: string, name: string, age: number, height: number, birthdate: string, sex: string, weight: number};
class SamplePerson {
constructor(obj: objType) {
this._id = obj.id;
this._name = obj.name;
this._age = obj.age;
this._height = obj.height;
this._weight = obj.weight;
this._birthdate = obj.birthdate;
this._sex = obj.sex;
}
}
答
声明OBJTYPE时,只需使用类型,而不是常量的。你可以阅读有关流量类型别名(在这种情况下,OBJTYPE是一个类型别名)这里https://flow.org/en/docs/types/aliases/
type ObjType = {id: string, name: string, age: number, height: number, birthdate: string, sex: string, weight: number};
class SamplePerson {
constructor(obj: ObjType) {
...
}
}
+0
谢谢!类型别名就是它的单词。得到它了! – hytm
人不了解的“流类型”,但你是如何在第一个例子创建“SamplePerson”的对象? – Deshak9
我的意思是流量。新的SamplePerson({id:'',name:'',etc}) – hytm
不确定是否可以在构造函数中简单地执行“obj:Object” – Deshak9