每个 class 都需要在 JSHint 全局变量中有一个条目吗?

Does every class need an entry in JSHint globals?

每次我创建一个新的ES6-class我需要将它添加到.jshintrc中的globals。因为否则我会收到警告 W117 '<classname>' is not defined.

项目不大,所以把每个class加到globals上也没什么大不了的。无论如何,我想知道拥有数千个 classes 的大型项目和许多开发人员如何避免这种情况,因为列表变得很长并且可能无法管理。

为了找到解决方案,我查看了 JSHint 选项并尝试在 Internet 上查找提示,但找不到任何有用的信息。

示例:

新建 class(在自己的文件中)。

/* exported Foo*/
class Foo {
  // some code
}

在另一个文件中使用新的class。

const foo = new Foo(); // W117 'Foo' is not defined

Foo 添加到 globals 后警告消失。

// .jshintrc
{
    // some options

    "globals": {
        "Foo": true
    }
}

看看ES6 Modules。 目前你创建了一个 Class Foo 但你没有导出它。

class Foo{
    ...
}

export default Foo;

在使用 Foo 之前,您应该导入它

import Foo from './foo.js'

const foo = new Foo();