在JavaScript中重用类名

时间:2017-10-01 09:51:21

标签: javascript class global

是否可以重用在here找到的全局对象列表中定义的类名? (像数字,字符串)

让我们说我想拥有自己的String类。我可以定义它,并像这样使用它:

String.js

[Fixnum, DateTime]

App.js

export default class String {
}

这实际上有效,但是

  • PHPStorm告诉我:是的,你使用了一个原始的对象包装器(想着它 全局对象String)。
  • 然后ESLint告诉我:禁止原始包装器实例(no-new-wrappers)
  • 最后SonarQube告诉我:对于原始类型使用包装器对象是无偿的,令人困惑和危险的。应该使用简单的文字。

所以是的,有没有办法封装我的类,所以它不会与全局String类混淆?

1 个答案:

答案 0 :(得分:1)

import './String'

函数和类定义是模块的本地定义。您正在导入该文件,但未使用其中的任何内容。

这就是为什么:

let string = new String();

将使用全局字符串 - 模块范围中没有String定义。

确保列出所需的导入名称:

import String from './String'

顺便提一下,这是为什么更好地练习为String类赋予唯一名称的多种原因之一,例如PhysicsStringStringMaterialThread。这样,如果你忘记将它导入某个地方,你就不会意外地使用全局定义。