![]() |
1
34
很容易。
通过做
当然,它没有在
说明语法和函数可以具有属性的事实的快速示例;):
编辑 这里是一个问题的排字部分的答案。 正如您已经知道的,typescript被设计为与javascript兼容。因此,与JS一样,可以通过以下方式访问对象的属性:
当然,通过使用“静态”方式访问属性,typescript将引发错误! 但是,通过动态访问属性的方式,typescript编译器无法确定它的类型,也无法确定它是否存在,因为括号之间的值将在运行时在typescript发生后进行计算。
这就是为什么它会被隐式标记为
正如大卫谢里特在他的
answer
,可以通过添加标志强制typescript引发错误。
希望这有帮助;) |
![]() |
2
24
它不会出错,因为
原因是元素访问表达式返回的对象类型为
因此,再次
|
![]() |
3
6
函数是对象。
您正在访问
你会得到的
|
![]() |
4
0
这里唯一真正的问题是,您期望typescript抛出一个错误,从而在逻辑中暴露出问题。预期的逻辑是使用大括号并使用
你用方括号的时候发生了什么?
大卫·谢里特指出
|
![]() |
Zoddo · 属性在明确定义时可能为“未定义” 4 月前 |
![]() |
Sanitysign · 为什么{}类型可分配给对象类型? 4 月前 |
![]() |
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 4 月前 |
![]() |
njord · 基于函数的Typescript返回类型 4 月前 |