打字稿@types/chai - 你如何使用Chai.Assertion?
Typescript @types/chai - how do you use Chai.Assertion?
我正在尝试在 typescript 中使用 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;
如果我尝试直接导入断言 - 我没有将 empty() 视为有效断言:
const assert = chai.assert;
assert.empty??? not there?
欢迎提出任何想法。
谢谢 - 乍得
快答
Shaun 在下面指出 - 将导入更改为:
import { assert, expect } from 'chai';
谢谢肖恩
不幸的是,assert
的类型不包括 isEmpty(...)
; will probably change for 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 中的样子。
除 Shaun 的回答外:如果您需要导入 应该 Chai 接口...
import { assert, expect } from "chai"; //Import the Expect & Assert Interfaces
import 'chai/register-should'; // Import the Should Interface
参考;
我正在尝试在 typescript 中使用 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;
如果我尝试直接导入断言 - 我没有将 empty() 视为有效断言:
const assert = chai.assert;
assert.empty??? not there?
欢迎提出任何想法。
谢谢 - 乍得
快答
Shaun 在下面指出 - 将导入更改为:
import { assert, expect } from 'chai';
谢谢肖恩
不幸的是,assert
的类型不包括 isEmpty(...)
; will probably change for 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 中的样子。
除 Shaun 的回答外:如果您需要导入 应该 Chai 接口...
import { assert, expect } from "chai"; //Import the Expect & Assert Interfaces
import 'chai/register-should'; // Import the Should Interface
参考;