【发布时间】:2021-04-06 06:16:11
【问题描述】:
我正在寻找一种可能性,如何编写一个单元测试来测试一个函数,如果它抛出一个 TypeScript 错误。
我有这个代码:
class MyClass {
method() { }
property: number = 10;
}
function someFunction<T, M extends keyof T & {
[Property in keyof T[M]]: Function;
}>(object: T, method: M) {
}
const myClass = new MyClass();
// next row will throw an error because myClass.property isn't a function
someFunction(myClass, "property");
我需要测试这段代码是否会引发 TypeScript 错误。如果是这样,那么一切都很好。
为什么?此代码只是一个示例。我有一个库,我的意图是定义一个函数应该做什么。我想为函数 someFunction 提供这些规则。这意味着方法的名称将始终是函数的名称,而不是数字或字符串等。
我想写一个测试来检查我以后没有破坏这个逻辑。我想我可以把这个简单的例子放到一个单独的忽略文件中,并编写我自己的测试库,它将加载文件并直接运行 tsc 编译器。但在我想做这样的事情之前,我想问一下是否有任何工具可以代替。
【问题讨论】:
-
不知道为什么要重新发明轮子。这就是工具的用途。使用 tsconfig.json 来建立您的严格级别,它将失败构建或使用 ts-loader 或带有扩展的 babel 通过。 IDE 编辑器也可以显示错误,我认为这是使用 typescript 的主要原因。
标签: typescript