如何避免ES6箭头函数

时间:2017-02-25 01:19:25

标签: javascript ecmascript-6 flowtype

我无法解决流式警告

检查此代码块时

export const login = (email: string, password: string) => ({
  type: types.LOGIN,
  responseTypes: [types.LOGIN_SUCCESS, types.LOGIN_FAILURE],
  promise: (client: Client) => client.post('/auth/sign_in', { email, password }),
});

我收到警告

  

错误包含单个函数参数的意外括号   身体没有花括号箭头 - parens

但是,当我删除(client: Client)周围的括号时,收到错误

  

模块构建失败:SyntaxError:意外的令牌

client之后的结肠处。

将功能更改为以下

export const login = (email: string, password: string) => ({
  type: types.LOGIN,
  responseTypes: [types.LOGIN_SUCCESS, types.LOGIN_FAILURE],
  promise: (client: Client) => { return client.post('/auth/sign_in', { email, password }); },
});

返回以下警告:

  

错误围绕箭头主体arrow-body-style

的意外阻止语句

我对解决此警告的正确语法有点困惑。感谢。

2 个答案:

答案 0 :(得分:3)

您获得的错误来自eslint arrow-parens规则,而不是来自流量。

您可以通过更改您的eslint配置或尝试ES6 method syntax

来解决此问题
promise(client: Client) {
  return client.post('/auth/sign_in', { email, password })
},

答案 1 :(得分:0)

我认为这个问题出现在你的第一个函数中,你应该将括号中的正文包裹起来。

export const login = (email: string, password: string) => { 
  type: types.LOGIN, 
  responseTypes: [
    types.LOGIN_SUCCESS, types.LOGIN_FAILURE
  ], 
  promise: (client: Client) => client.post('/auth/sign_in', { email, password }), 
};

您也可以这样写(不使用单一表达式简写。

export const login = (email: string, password: string) => { 
  type: types.LOGIN, 
  responseTypes: [
    types.LOGIN_SUCCESS, types.LOGIN_FAILURE
  ], 
  promise: (client: Client) => { return client.post('/auth/sign_in', { email, password }); }, 
};