javascript - 使用流注释具有许多属性的类?

标签 javascript flowtype

我有一个包含许多成员属性的类。所有这些重复似乎很荒谬。有没有更简洁的方法来注释它?

type Args = {
  name: string,
  flush_timeout: number,
  close_timeout: number,
  slab_threshold: number,
  slab_fanout: number,
  max_writers: number,
  min_time: EpochObj,
  max_time: EpochObj,
  size: number,
  packet_support: boolean,
  compression: string,
  path: string
}

export default class Space {
  name: string
  flush_timeout: number
  close_timeout: number
  slab_threshold: number
  slab_fanout: number
  max_writers: number
  min_time: EpochObj
  max_time: EpochObj
  size: number
  packet_support: boolean
  compression: string
  path: string

  constructor(args: Args) {
    this.name = args.name
    this.flush_timeout = args.flush_timeout
    this.close_timeout = args.close_timeout
    this.slab_threshold = args.slab_threshold
    this.slab_fanout = args.slab_fanout
    this.max_writers = args.max_writers
    this.min_time = args.min_time
    this.max_time = args.max_time
    this.size = args.size
    this.packet_support = args.packet_support
    this.compression = args.compression
    this.path = args.path
  }
}

最佳答案

你可以使用一个hack,即$ReadOnly<Space>将代表 Space实例成员:

export default class Space {
  name: string
  flush_timeout: number
  ...

  constructor(args: $ReadOnly<Space>) {
    this.name = args.name
    this.flush_timeout = args.flush_timeout
    ...
  }
}

关于javascript - 使用流注释具有许多属性的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53177385/

相关文章:

javascript - 随着时间的推移滞后问题javascript

javascript - JQuery 将“null 参数传递给 MVC Controller 方法”

flowtype - 流量: resolving modules in a monorepo that uses Yarn workspaces

flowtype - $PropertyType 获取数组条目

javascript - Flow 无法理解对 null 或未定义的检查

javascript - HTML 5 倾斜代码

javascript - 理解react-redux中connect()函数的语法

redux - 如何避免使用文字字符串来缩小流程中不相交的联合

javascript - 流动型类型转换

javascript - 如何通过 javascript 从 silverlight 媒体播放器 (player.xap) 获取播放状态?