在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} = {}
作为参数,这意味着我需要名为shortId
,label
的参数,但它是可选的! ('原因由{}初始化)
关键是,我想使用Flow作为静态类型检查器,就像我在dateFrom: Object
中所做的那样。但如果我这样做{shortId, label}: Object = {}
,ESLint会说Parsing Error: binding rvalue
。
那么,我如何一次使用Flow,ES6命名参数?