函数声明
function addNumbers(num1: number, num2: number): number {
return num1 + num2;
}
类型推断可能出现的问题
- 参数类型不明确:如果函数调用时传递的参数类型与期望不符,类型推断可能无法准确捕捉错误。例如,传递了字符串类型的参数,而函数期望数字类型,类型推断可能不会及时报错。
- 返回值类型推断不准确:在复杂的函数逻辑中,类型推断可能无法准确确定返回值类型。比如函数内部有条件分支,不同分支返回不同类型的值,类型推断可能会给出一个联合类型,而这可能不是我们想要的准确类型。
避免方法
- 显式类型注解:对函数的参数和返回值都进行显式的类型注解,就像上述
addNumbers
函数一样,明确指定参数类型为number
,返回值类型也为number
。这样可以避免类型推断的不确定性,确保函数的输入和输出类型的准确性。
- 使用类型断言:在需要明确类型的地方使用类型断言。例如,如果从某个地方获取的值类型不确定,但你知道它实际是
number
类型,可以使用as number
进行类型断言,强制将其转换为期望的类型。不过要谨慎使用,因为错误的类型断言可能导致运行时错误。