|
1
3
这是一个可悲的结果 an outstanding issue in TypeScript 通过括号符号进行属性访问不会像使用点符号那样触发类型保护。显然,将check for bracket符号添加到编译器中是很简单的,但是它会导致明显更长的编译时间。 我假设您在编译时不知道属性名的实际字符串文字。。。否则我建议使用点符号:
它会起作用的。但你可能做不到。在这种情况下,更好的解决方法是将属性分配给新变量:
它还允许类型保护工作,因为它不再进行属性访问。 在我看来,你的类型断言也很好。 希望能有所帮助。祝你好运! |