// 定义泛型函数,处理多种数据类型
function processData<T = any>(data: T = null as unknown as T, option: string = 'defaultOption'): T {
// 函数逻辑,这里简单返回数据
return data;
}
// 示例调用
const arrayResult = processData([1, 2, 3]);
const objectResult = processData({ key: 'value' });
默认参数类型设计思路
T
泛型默认类型为 any
:这样在没有显式指定泛型类型时,函数可以接受任意类型的数据。但这只是一种兜底方案,实际使用中鼓励显式指定类型以增强类型安全。
option
参数类型为 string
且有默认值 'defaultOption'
:这是一个简单的选项参数,用于控制函数的一些行为。由于它是相对固定的行为控制参数,类型确定为 string
并给定默认值,方便调用者在不需要特殊配置时直接使用默认行为。
通过类型推断和约束保证函数正确性
- 类型推断:当调用者传递具体的数据时,TypeScript 会根据传入的数据类型自动推断
T
的类型。例如,当传入 [1, 2, 3]
时,T
会被推断为 number[]
,从而保证返回值类型的正确性。
- 约束:虽然
T
默认是 any
,但一旦调用者显式指定了泛型类型,函数就会按照指定的类型进行严格检查。例如,如果指定 T
为 string
,那么传入非字符串类型的数据就会报错,从而保证了类型安全。同时,option
参数固定为 string
类型,防止传入其他类型导致错误。