使用类型化文字时测试不正确的字符串



假设我有函数

function main(input: 'bat' | 'spider' = 'bat') {
switch (input) {
case 'bat':
return "batman";
case 'spider':
return "spiderman";
default:
throw new Error('Unknown input type');
}
}

我无法测试传递错误的参数,因为我将得到一个编译器错误。

Argument of type 'bannana' is not assignable to parameter of type '"bat" | "man" | undefined'.ts(2345)

测试是:

describe('throws error', () => {
it('when invalid input is passed', () => {
const result = main('bannana'); <--- Type error
expect(result).toThrowError();
});
});

您可以执行以下操作:

// @ts-expect-error
const result = main('bannana');

最新更新