【发布时间】:2017-06-29 16:39:08
【问题描述】:
我正在缓慢而坚定地在我的代码中使用 flowType,但我正在为一个概念而苦苦挣扎。
如何指定对象的未知、动态命名属性的类型?
例如,我的用户对象可能有一个包含具有唯一键的组织的对象。
我该如何定义?
export type User = ?{
currentOrg: string,
displayName?: string,
email: string,
emailVerified: boolean,
newAccount: boolean,
organisations?: {
UNKNOWNKEY?: string {
orgData1: string,
orgData2: string,
}
},
uid: string,
photoUrl?: string,
};
非常感谢您对此的任何帮助。谢谢!
【问题讨论】:
-
附带说明,在其定义中将您的类型定义为可为空的不是好习惯。您可能不希望
null成为使用该类型的Usereverywhere 的有效值。最好选择使User的某些用法可以为空。例如type Bug = { createdBy: User, assignedTo: ?User }. -
非常感谢。是的,我回想起来也注意到了同样的事情,并创建了两种类型,NullableUser 和 DefiniteUser,它们具有 ?User 或 User 类型。这样,对于我的大部分代码,我都可以使用 DefiniteUser 类型。
标签: javascript syntax flowtype