【发布时间】:2018-01-14 13:41:33
【问题描述】:
我在 Typescript 中编写了 mocha 测试,现在我在 es6 中编译它
tsc *.ts --target es6 -m commonjs --watch
我在控制台中没有收到任何错误,
但是在 WebStorm 中,每个“应该”柴关键字都用红色下划线(当我将鼠标悬停时,我收到一条消息:ts2339:蓝鸟类型上不存在属性“应该”强>)。
例如,我正在使用“chai”,我想检查预期值是否为真:
import * as chai from "chai";
export class WrapedChai {
public shouldBeTrue(valueToTest : any){
let expectedValue : boolean = true;
expectedValue.should.equal(valueToTest);
}
// or usintg SHOULD with a Promise
public belongsToGLOErrorPromise(valueToTest: any) {
let expectedValue : boolean = true;
return Promise.resolve(expectedValue).should.eventually.equal(valueToTest);
}
}
并且应该总是用红色下划线。
我试过这个:
import { should } from 'chai';
should();
还有这个:
import chai = require('chai');
var should = chai.should();
但“应该”仍以下划线显示为错误。
【问题讨论】:
-
嗯,我从来没有在打字稿的上下文中使用“应该”,但“期望”工作得很好。顺便提一句。您的代码示例与测试和您后来添加的导入似乎不匹配(因为您在示例中导入“断言”)
-
'expect' 对我不起作用(在这种情况下)。就像我说的“应该”正在工作,并且在控制台中没有错误,但它只是在 Webstorm 中被强调为“应该”在(在这种情况下)“expectedValue”或 true 或其他任何 WebStorm 上不存在的错误告诉我“应该”不存在。
标签: typescript ecmascript-6 mocha.js chai commonjs