es6导出/导入多个类 – instanceof返回false
test1.js
export class ValidationError extends Error { constructor (msg) { super(msg) } } export class ServerError extends Error { constructor (msg) { super(msg) } }
test2.js
import * as errors from './test1' const inst = new errors.ValidationError('msg') console.log(inst instanceof errors.ValidationError)
当我运行test2输出是false
( true
预期)。
问题不是import
。 这是巴别。 内置类的inheritance是ES6function 。 在经过转换的ES5代码中,它将不能正常工作。
上面的代码可能会导致出现ValidationError
和Error
实例的混合。
解决scheme是不传输Node已经支持的function。 应使用自定义预设,例如, babel-preset-es2015-node6
或babel-preset-eslatest-node6
。