我试图在打字稿中使用chai,我无法像我所期望的那样让任何断言都能工作。
package.json
"dependencies": {
"@types/chai": "^4.0.1",
"@types/mocha": "^2.2.41",
"chai": "^4.1.0",
"mocha": "^3.4.2",
"typescript": "2.4.2"
}所有这些都会发出编译器错误:
import * as chai from 'chai';
const expect = chai.expect;
const assert = chai.assert;
const expect = chai.expect;
expect(myVar).to.be.empty();
expect(myVar).to.be.empty;
expect(myVar).to.be.undefined();
expect(myVar).to.be.undefined;如果我试图直接导入断言-我不认为空()是一个有效的断言:
const assert = chai.assert;
assert.empty??? not there?任何想法都欢迎。
谢谢-查德
快速回答
Shaun指出如下-将导入更改为:
import { assert, expect } from 'chai';谢了肖恩
发布于 2017-08-10 04:19:35
不幸的是,这些类型不包括用于isEmpty(...)的assert;那个4.0.3。同时,我们可以转换assert as any并调用isEmpty(...)。
一旦安装了这些类型,这可能对您有效:
import chai = require("chai");
const assert = chai.assert;
const expect = chai.expect;
expect("").to.be.empty;
expect(undefined).to.be.undefined;
(assert as any).isEmpty("");另一种选择是破坏进口:
import { assert, expect } from "chai";
expect("").to.be.empty;
expect(undefined).to.be.undefined;
(assert as any).isEmpty("");下面是这些在VSCode中的外观。

发布于 2020-09-19 16:28:34
除了Shaun的回答:如果您需要导入应该柴接口.
import { assert, expect } from "chai"; //Import the Expect & Assert Interfaces
import 'chai/register-should'; // Import the Should Interface https://stackoverflow.com/questions/45603637
复制相似问题