【发布时间】:2018-09-09 20:23:36
【问题描述】:
我有一个要运行的测试,它检查以确保传入正确的参数。但是我的实际文件已经有正确的声明,所以它不会让我编译。我尝试使用 // @ts-ignore 忽略评论,但它不起作用。我怎样才能让它忽略这个错误?
在我的实际文件中,声明:
interface Props {
maxValue: number;
fill?: string;
value: number;
width: number;
height: number;
}
new CurvedMeter(props: Props) //how it is declared
在我的测试文件中:
it('throws if any neccesary props are missing', () => {
const badProps = { maxValue: 100, value: 10, width: 100 };
new CurvedMeter(badProps); // @ts-ignore <- does not work
expect.any(Error);
});
【问题讨论】:
-
为什么不将道具声明为可选?
-
@toskv 在我的网络应用程序中,它们是必要的,我觉得为了测试而更改我的声明违背了目的。该测试旨在检查我是否有
maxValue、value、width和height,否则将引发错误,但该错误基本上为时过早,并且根本无法运行我的网络应用程序。 -
你可以在你的测试中创建一个存根来扩展 CurvedMeter 并发送一些默认或空参数。
-
@toskv 我已经包含了一个 ts 无法编译的测试。希望现在我根本不想更改我的声明是有意义的。
-
so.. 你的问题是 badProps 不是 Props 类型的?
标签: unit-testing typescript compiler-errors tsx