<div id="module-unit-notification-container" hidden=""></div> <p>在使用 TypeScript 生成 JavaScript 应用程序学习路径中之前的模块中,你了解了如何将类型批注应用于接口、函数和类以创建强类型化组件。 但是,如果想要创建可处理多种类型而不只是一种类型的组件,该怎么操作? 可以使用 类型,但这样就失去了 TypeScript 类型检查系统的功能。</p>
讯享网
泛型是可以在代码库中定义和重复使用的代码模板。 它们提供了一种方法,可用于指示函数、类或接口在调用时要使用的类型。 可以通过将参数传递给函数的方式来理解,不同之处是使用泛型可以指示组件在被调用时应该使用哪种类型。
当代码是满足以下条件的函数或类时,创建泛型函数:
- 处理各种数据类型。
- 在多个位置使用该数据类型。
泛型可以:
- 在处理类型时提供更大的灵活性。
- 实现代码重用。
- 减少使用 类型的需要。
为更好地理解使用泛型的理由,可以查看一个示例。
函数生成 类型的项的数组。
讯享网
然后,调用 函数并向其传递一个数字数组来声明 变量,并使用一个字符串数组来声明 变量。 但是,由于使用了 类型,因此没有什么可以阻止代码将 推送到 或将 推送到 。
如果想要在调用函数时确定数组将包含的值的类型,然后让 TypeScript 对传递给它的值进行类型检查以确保它们属于该类型,该怎么操作? 这时泛型就可以发挥作用了。
此示例使用泛型重写 函数。 现在,它可以接受你在调用函数时指定的任何类型。
讯享网
泛型定义一个或多个“类型变量”来标识要传递给组件的一个或多个类型(用尖括号 () 括起来)。 (你还会看到称为类型参数或泛型参数的类型变量。)在上面的示例中,函数中的类型变量称为 。 是泛型的常用名称,但可以根据需要对其进行命名。
指定类型变量后,可以使用它来代替参数中的类型、返回类型或将其置于函数中要添加类型批注的任何其他位置。

类型变量 T 可用于任何需要类型批注的位置。 在 getArray 函数中,它用于指定 items 参数的类型、函数返回类型和返回新的项数组。
若要调用函数并向其传递类型,请将 追加到函数名称。 例如, 指示函数仅接受 值的数组,并返回 值的数组。 因为类型已指定为 ,所以 TypeScript 会预期将 值传递给函数,如果传递的是其他值,则会引发错误。
在此示例中,通过更新 和 的变量声明以调用具有所需类型的函数,TypeScript 可阻止将无效项添加到数组中。
泛型组件中并不是只能使用单个类型变量。
例如, 函数接受 和 两个参数,并返回 参数。 可以使用 和 两个泛型为每个参数和返回类型分配不同的类型。 通过调用 函数初始化变量 (将 作为 和 参数的类型)、初始化 (以 作为参数的类型)和初始化 (以 作为参数的类型)。 使用这些变量时,TypeScript 可以对这些值进行类型检查并在发生冲突时返回编译时错误。
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/145943.html