| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> TypeScript基础小课堂五 -> 正文阅读 |
|
[JavaScript知识库]TypeScript基础小课堂五 |
泛型-基本介绍泛型,顾名思义,就是可以适用于多个类型,使用类型变量(比如T)帮助我们捕获传入的类型,之后我们就可以继续使用这个类型。 本质是参数化类型,通俗的讲,就是所操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和函数的创建中,分别成为泛型类,泛型接口、泛型函数 泛型函数: 这个函数的参数类型或者返回值的类型是可变的 泛型函数定义格式
在函数名称的后面写 类型变量相当于一个类型容器,能够捕获用户提供的类型(具体是什么类型由用户调用该函数时指定) 示例
说明:?
调用格式 语法:在函数名称的后面添加
示例
泛型-类型推断简化函数调用调用函数时,需要显示设置类型参数,太麻烦,
泛型-泛型约束泛型的问题默认情况下,泛型函数的类型变量 T 可以代表多个类型,这导致在泛型函数内部无法访问任何属性 示例
添加泛型约束添加泛型约束收缩类型,主要有以下两种方式:
指定更加具体的类型:从任意类型的数据 ===>?任意类型的数组。 将类型修改为
添加约束:
说明:
注意:传入的实参(比如,数组)只要有 length 属性即可(类型兼容性) 泛型-典型应用比如创建一个函数来获取对象中属性的值
泛型的类型变量可以有多个,并且类型变量之间还可以约束(比如,第二个类型变量受第一个类型变量约束)
说明:
泛型接口在接口中使用泛型来使用,以增加其灵活性,增强其复用性 定义
泛型工具类型泛型工具类型:TS 内置了一些常用的工具类型,来简化 TS 中的一些常见操作 说明:它们都是基于泛型实现的(泛型适用于多种类型,更加通用),并且是内置的,可以直接在代码中使用。 这些工具类型有很多,先介绍以下3个:
PartialPartial用来基于某个Type来创建一个新类型,新类型中所有的属性是可选的。 格式
示例: 用来构造(创建)一个类型,将 Type 的所有属性设置为可选。
说明:构造出来的新类型 PartialProps 结构和 Props 相同,但所有属性都变为可选的。 ReadonlyReadonly<Type> 用来构造一个类型,将 Type 的所有属性都设置为 readonly(只读)--不可修改。 示例:
说明:构造出来的新类型 ReadonlyProps 结构和 Props 相同,但所有属性都变为只读的。
当我们想重新给 id 属性赋值时,就会报错:无法分配到 "id" ,因为它是只读属性。 PickPick<Type, Keys> 从 Type 中选择一组属性来构造新类型。 示例:
说明:
|
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 7:29:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |