gpt4 book ai didi

typescript - ts-jest:忽略 TypeScript 类型错误

转载 作者:行者123 更新时间:2023-12-04 13:42:10 38 4
gpt4 key购买 nike

我刚开始学习 TypeScript,并尝试了一些带有 jest 单元测试的简单应用程序(使用 ts-jest):

简单的 app.ts 模块:

function greet(person: string): string {
return `Hello, ${person}`;
}

exports.greet = greet;

简单的 app.spec.ts 代码:
const greetObject = require('../app');

greetObject.greet(1);

describe('greet function', () => {
it('should return greeting', () => {
expect(greetObject.greet('Dude')).toEqual('Hello, Dude');
});
it('should throw type exception', () => {
const spy = jest.spyOn(greetObject, 'greet');
greetObject.greet(1);
/** @todo what should happen ? */
});
});

问题是:我是否应该收到类型错误?事实上,我在这里没有收到任何错误。

但是如果我在 app.ts 文件中使用错误的参数类型调用greet,整个测试套件就会失败。

我在 TypeScript 单元测试中遗漏了什么吗?

更新。 将 require 转换为 ES6 导入。 TypeScript 诊断现在正在工作,但我仍然不知道我是否可以对错误的类型做任何事情并测试这些情况。任何建议表示赞赏。

最佳答案

should I receive type error or not ?



不在这里。

您正在测试的是 TS 文件的 JS 输出。

TS 错误是编译时错误。

I still don't know if I can do anything with wrong types and test those situations.



TypeScript 在运行时没有类型检查,因为运行时不是 TypeScript,而是 JavaScript。

如果您想验证接收到的某个对象,您应该实现实际的检查功能。

也许有帮助:

How to check the object type on runtime in TypeScript?

关于typescript - ts-jest:忽略 TypeScript 类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55554126/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com