使用babel,typeof返回“object”而不是类名

时间:2018-03-01 14:02:41

标签: ecmascript-6 mocha babeljs

考虑

class A {}
// somewhere in a a test using mocha.js with babel es2105 preset on

const a = new A();
assert.ok(typeof(a) === "A");

此测试失败。调查一下,结果是typeof返回“object”而不是“A”,这导致测试失败。因此,巴贝尔错误地改变了类型的呼叫。

我尝试使用ES2015 typeof symbol transform,但这没有帮助。查看代码,它只对Symbol实例正确执行。这是有道理的。

如何修复以达到正确的行为?

1 个答案:

答案 0 :(得分:1)

这是正确的行为。 a是一个对象,A的一个实例,可能正是您要找的对象:

assert.ok(a.constructor.name === 'A')