首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Typescript @type/chai-您如何使用Chai.Assertion?

Typescript @type/chai-您如何使用Chai.Assertion?
EN

Stack Overflow用户
提问于 2017-08-10 02:50:14
回答 2查看 2.7K关注 0票数 4

我试图在打字稿中使用chai,我无法像我所期望的那样让任何断言都能工作。

package.json

代码语言:javascript
复制
"dependencies": {
  "@types/chai": "^4.0.1",
  "@types/mocha": "^2.2.41",
  "chai": "^4.1.0",
  "mocha": "^3.4.2",
  "typescript": "2.4.2"
}

所有这些都会发出编译器错误:

代码语言:javascript
复制
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;

如果我试图直接导入断言-我不认为空()是一个有效的断言:

代码语言:javascript
复制
const assert = chai.assert;
assert.empty??? not there?

任何想法都欢迎。

谢谢-查德

快速回答

Shaun指出如下-将导入更改为:

代码语言:javascript
复制
import { assert, expect } from 'chai';

谢了肖恩

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-10 04:19:35

不幸的是,这些类型不包括用于isEmpty(...)assert;那个4.0.3。同时,我们可以转换assert as any并调用isEmpty(...)

一旦安装了这些类型,这可能对您有效:

代码语言:javascript
复制
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("");

另一种选择是破坏进口:

代码语言:javascript
复制
import { assert, expect } from "chai";

expect("").to.be.empty;
expect(undefined).to.be.undefined;
(assert as any).isEmpty("");

下面是这些在VSCode中的外观。

票数 1
EN

Stack Overflow用户

发布于 2020-09-19 16:28:34

除了Shaun的回答:如果您需要导入应该柴接口.

代码语言:javascript
复制
import { assert, expect } from "chai"; //Import the Expect & Assert Interfaces
import 'chai/register-should'; // Import the Should Interface 

参考;Importing Chai in Typescript

https://www.chaijs.com/guide/styles/#should

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45603637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档