面试题答案
一键面试- 代码执行结果:
- 这段代码在执行
func(10)
时会报错。
- 这段代码在执行
- 原因解释:
- 在TypeScript中,
func
函数的参数a
的类型被定义为number | string
,这是一个联合类型,表示a
可以是number
类型或者string
类型。 - 然而,
number
类型并没有length
属性,只有string
类型有length
属性。当调用func(10)
时,传入的是number
类型的值10
,而代码中试图访问a.length
,对于number
类型来说这是不存在的属性,所以会导致运行时错误。在严格的TypeScript类型检查环境下,代码在编译阶段就会报错,提示Property 'length' does not exist on type 'number | string'. Property 'length' does not exist on type 'number'.
。
- 在TypeScript中,