繁体   English   中英

流类型对象中的动态属性名称

[英]Dynamic property names in flow typed object

我正在缓慢而确定地将 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,
};

真的很感激这方面的任何帮助。 谢谢!

Flow 对于行为类似于地图的对象具有特定的语法

{ [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,
};

实际上,在 TypeScript 中,您可以为键使用名称,然后传递键的类型:

type User = {
  [key: string | number]: string;
};

在 FlowType 中,您可以像 TypeScript 一样进行操作,也可以在没有示例名称的情况下进行操作:

type User = {
  [string | number]: string,
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM