在Flow

时间:2016-06-27 02:15:29

标签: javascript ecmascript-6 eslint flowtype destructuring

在ES6中,您可以使用命名参数,例如

// @flow
const makeRequest = (dateFrom: Object, dateTo: Object, subdomain: string, {shortId, label} = {}) => {
  let request = {}
  try {
    dateValidation(dateFrom, dateTo)
    subdomainValidation(subdomain)

    request.subdomain = subdomain
    request.dateFrom = dateFrom.format('YYYY-MM-DD')
    request.dateTo = dateTo.format('YYYY-MM-DD')

    if (shortId) {
      request.shortId = shortId
    }
    if (label) {
      request.label = label
    }
  } catch (error) {
    throw error
  }
  return request
}

参考:http://www.2ality.com/2011/11/keyword-parameters.html

它是我的代码的一部分,正如您所看到的,我使用{shortId, label} = {}作为参数,这意味着我需要名为shortIdlabel的参数,但它是可选的! ('原因由{}初始化)

关键是,我想使用Flow作为静态类型检查器,就​​像我在dateFrom: Object中所做的那样。但如果我这样做{shortId, label}: Object = {},ESLint会说Parsing Error: binding rvalue

那么,我如何一次使用Flow,ES6命名参数?

0 个答案:

没有答案