【发布时间】:2016-06-12 16:54:21
【问题描述】:
问题:
我目前正在改进 eslint-plugin-jasmine 包的 valid-expect rule 以尝试在未调用匹配器时处理另一个无效的 Jasmine expect() 用法:
expect(true).toBeDefined;
有效用法:
expect(true).toBeDefined();
我已经很接近了 - 我可以确定 expect() 上有一个成员表达式:
// matcher was not called
MemberExpression: function (node) {
if (node.object && node.object.callee.name === 'expect') {
console.log(node.property)
}
}
但node.property 在有效和无效情况下都是Identifier 类型:
Node {
type: 'Identifier',
start: 13,
end: 24,
loc:
SourceLocation {
start: Position { line: 1, column: 13 },
end: Position { line: 1, column: 24 } },
range: [ 13, 24 ],
name: 'toBeDefined' }
并且没有任何明显的迹象表明这是一个属性或方法。
问题:
如何确定 ESLint 中的属性是否可调用?
【问题讨论】:
标签: javascript testing jasmine eslint static-code-analysis