我慢慢地,确定地将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,
};
非常感谢任何帮助。谢谢!
答案 0 :(得分:21)
对于行为类似于地图的对象,流量为specific syntax:
{ [key: K]: V }
其中K
是键的类型,V
是值的类型。
您的完整示例如下:
export type User = {
currentOrg: string,
displayName?: string,
email: string,
emailVerified: boolean,
newAccount: boolean,
organisations?: { [key: string]: string },
uid: string,
photoUrl?: string,
};
答案 1 :(得分:0)
实际上,在TypeScript中,您可以为密钥使用名称,然后传递密钥的类型:
type User = {
[key: string | number]: string;
};
在FlowType中,您可以像TypeScript一样进行操作,也可以在没有示例名称的情况下进行操作:
type User = {
[string | number]: string,
};