【发布时间】:2023-03-03 09:37:02
【问题描述】:
我希望能够抑制从 Typescript 获得的编译时错误,我使用点表示法访问编译器不知道的属性。使用括号表示法访问有效,但点表示法会产生编译错误。
我的具体情况是我使用 Angular 向 Jasmine 添加了一个自定义匹配器(称为“toLookLike”)。我可以用括号表示法:
expect(something)['toLookLike'](otherthing);
但使用点符号会更易读
expect(something).toLookLike(otherthing);
但是匹配器是在运行时添加的,编译器不知道,所以如果我使用点符号会出现编译错误。
有没有办法告诉 Typescript 在这种情况下点符号是可以的?我很乐意这样做一次,或者在使用该方法的每一行上。我当然没有能力将 toLookLike 添加到 jasmine Matcher 对象的定义中。
我非常熟悉有关允许未定义属性的通用点表示法的问题,在这种特定情况下,我准备承担风险。我不需要解释为什么在一般情况下禁止点符号。我也阅读并理解了this question。
【问题讨论】:
标签: angular typescript jasmine