function transformUserInfo(users: [string, number, string[]][]): [string, number][] {
return users.map(user => {
const [name, , hobbies] = user;
return [name, hobbies.length];
});
}
类型安全说明
- 函数参数类型定义:在函数
transformUserInfo
的参数中,明确指定其类型为 [string, number, string[]][]
,这表明传入的数组中的每个元素都是一个包含字符串、数字和字符串数组的元组。这确保了传入的数据结构与预期一致,避免传入类型不匹配的数据。
- 函数返回值类型定义:函数返回值类型定义为
[string, number][]
,说明返回的数组中的每个元素是包含字符串和数字的元组。这使得调用该函数的代码能够预期正确的返回值结构,避免在后续使用返回值时出现类型错误。
- 解构赋值时的类型推断:在
map
回调函数中,使用解构赋值 const [name, , hobbies] = user;
,TypeScript 能够根据 users
的类型定义推断出 name
是字符串类型,hobbies
是字符串数组类型,从而在计算 hobbies.length
时保证类型安全。如果 hobbies
不是数组类型,TypeScript 会在编译阶段报错,避免运行时错误。