MST

星途 面试题库

面试题:TypeScript 泛型函数构建基础

请实现一个泛型函数 `identity`,它接受一个参数并返回相同的参数。然后,使用类型约束,让这个函数只能接受具有 `length` 属性的类型作为参数,最后解释一下类型约束在泛型函数中的作用。
16.9万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function identity<T extends { length: number }>(arg: T): T {
    return arg;
}

// 类型约束在泛型函数中的作用:
1. **增加类型安全性**:通过类型约束,可以确保传递给泛型函数的参数满足特定的类型条件。在这个例子中,只有具有 `length` 属性的类型才能作为参数传递给 `identity` 函数,避免了传递不具备 `length` 属性的类型而导致运行时错误。
2. **允许使用特定属性和方法**:当对泛型类型进行约束后,在函数内部就可以放心地使用被约束类型所共有的属性和方法。例如在 `identity` 函数中,如果没有类型约束,就不能确定 `arg` 一定有 `length` 属性,添加约束后就可以在函数内使用 `arg.length` 而不会有类型错误。
3. **提高代码的可维护性和可读性**:类型约束明确了泛型函数期望的参数类型,使得代码的意图更加清晰,其他开发者在阅读和维护代码时更容易理解函数的使用方式和限制条件。