1

我目前正在此代码上尝试 eslint 并遇到错误(请参见屏幕截图)。我不确定消除错误的最佳方法是什么。

代码片段:

let pathFor = ( path, view ) => {
  if ( path.hash ) {
    view = path;
    path = view.hash.route;
    delete view.hash.route;
  }

尝试摆脱错误(这有效,但不确定它是否是最好的方法):

let pathFor = ( pathData, viewData ) => {
  if ( pathData.hash ) {
    view = pathData;
    path = view.hash.route;
    delete view.hash.route;
  }

这是 eslinting 在 sublime 中的截图

在此处输入图像描述

4

1 回答 1

3

有很多方法可以做到。linter 会抛出错误,因为您正在改变一个参数,这可能会让阅读您的代码的人感到困惑,或者导致其他问题。一种更“功能性”的编程风格基本上是 linter 所推荐的(创建一个新变量而不是改变一个旧变量),而且可能是正确的。我过去使用的一种方法是“匈牙利案例”:

let pathFor = (_path, _view) => {
  if (_path.hash) {
    view = _path;
    path = view.hash.route;
    delete view.hash.route;
  }

但是,小下划线的含义可能是任意的,具体取决于谁在阅读您的代码。

但是,我认为你拥有它的方式很好。正如菲尔卡尔顿所说:

计算机科学中只有两个难点:缓存失效和命名。

我认为这个问题更多的是“最佳命名实践”的问题。如果是这样,我也不会在这上面浪费太多的精神力。

于 2015-10-10T06:55:02.357 回答