TypeScript中的重要概念有哪些
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍了TypeScript中的重要概念有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇TypeScript中的重要概念有哪些文章都会有所收获,下面我们一起
千家信息网最后更新 2026年11月04日TypeScript中的重要概念有哪些
这篇文章主要介绍了TypeScript中的重要概念有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇TypeScript中的重要概念有哪些文章都会有所收获,下面我们一起来看看吧。
Typescript中的几个重要概念
1.any 和 T(泛型)的区别
/**any 和 T ,一个是任意类型,一个是泛类型卧槽,这也太难让人理解他的区别了吧,字面意思几乎一样,但是我连续读了:泛..泛.泛 任意..任意类型,读了十遍,还是感受到了差异*/any:任意类型,代表的是所有类型泛型:泛型他就是所有类型中的一种类型,并不是完全的所有类型,所以在函数中返回的类型要和定义的类型一摸一摸,不能修改他原有的类型// 在这种场景下,有区别体现//正确function getInfo(age: any): any { return "鬼哥今年:"+age}getInfo("18岁")//错误function getInfo(age: T): T { return "鬼哥今年:"+age}getInfo("18岁")//这里直接报错2.type interface enum
type:用来约束数据类型(数据结构,数据属性且可以是联合类型,元组类型)
interface:用来约束数据类型(数据结构,数据属性且不可以是联合类型,元组类型)
enum:用来约束数据类型的值,而并非数据类型
使用场景如:
//人interface People {}//动物interface Animal {}// type和interface区别1// 正确(人既可以是动物,也可以是人)type User=People | Animal;// 错误(人既可以是动物,也可以是人),使用interface定义却是不可以的interface User { People | Animal };其实从语法上可以看出他们两的区别,`type` 是用`=`符号,既然是等于,那肯定就存在多种情况的,`interface`使用的是`{}`符号,是一种`定义`的形式,既然是`定义`,那肯定就是觉得性质的,只会有一种可能/**************************************/// type和interface区别2既然`interface`是一种数据结构,那肯定是可以实现这种数据结构的,所以`interface`可以实现的功能// 比如运用interface用来定义接口,然后实现接口的功能:interface UserModelApi { getUserList:()=>Promise, getOrderList:()=>Promise,}class HtppApi implements UserModelApi{ getUserList(){ return new Promise((resolve)=>{ }); } getOrderList(){ return new Promise(()=>{ }); }}// enum和const的区别/**他们两者的相同点,都是定义数据,且定义的数据不可更改.不同点在于1)其实和上面描述`type`与`interface`一样,他们都是一个是定义,一个是赋值2)下面的代码是不是从感觉使用枚举看上去语法的阅读性更强3)`enum`枚举可以用来定义类型*/// 正确(语法理解上一看就知道,是这个对象有哪种情况)enum Sex { M = "男", F = "女" }// `enum` Sex枚举可以用来定义类型const getInfo=function(sex:Sex){ return `我的性别为:${sex}`;}/**************************************/// 错误(而这种语法看上去就是,这个对象有哪些值)const Sex ={ M:"男", F:"女"}// `const` Sex 不可以用来定义类型const getInfo=function(sex:Sex){ return `我的性别为:${sex}`;}3.映射类型
将对象或数组中类型转换为另一个类型
// 假设一个系统账号登录的场景://定义一个用户信息的接口类型interface User { age: number name: string password:string}//登录成功设置用户数据const UserInfo:User={ age:1, name: "鬼哥", password:"123456"}//输出密码为:123456console.log(UserInfo.password)//此时当设置用户数据成功后,User接口定义就不能再修改了,那我们就可以使用`映射类型`//设置所有属性为只读* keyof:获取当前对象所有属性{"age" | "name" | "password"}* T:泛型* P: 当前属性type SetReadonly ={ readonly [P in keyof T]:T[P];}//新建只读用户数据对象type ReadonlyUser = SetReadonly;const UserInfo:ReadonlyUser={ age:1, name: "鬼哥", password:"123456"}//直接报错,因为UserInfo实力中的每个属性都不可以修改console.log(UserInfo.password)//当然这样的举例说服我们去使用确实还缺少一些说服力,但是他的场景就是:在定义类型之后,可以重新设置定义类型的属性值4.交叉类型
/**意思其实就是,共同的意思(数学中的并集的概念)这个和extends功能上相差不大,但是extends如果是类的话需要调用父函数构造函数大致使用如下:*/interface UserApi { getOrderList():void}// extends方式interface AppApi extends UserApi { getUserList():void}const appApi:AppApi={ getOrderList(){ }, getUserList(){ }}//交叉类型方式const appApi:AppApi&UserApi={ getOrderList(){ }, getUserList(){ }}5.联合类型
/**意思其实就是,相同部分的意思(数学中的交集的概念)*/interface UserApi { getUserList():void}interface AppApi{ getUserList():void}//联合类型方式const appApi:AppApi|AppApi={ getUserList(){ }}6.元组
/**这个从字面上就很好理解元:元素(代码里就是对象的意思)组:数组所以意思就是:一个包含多个类型对象的数组集合,这个不要想太多就是这么个东西*/type regionType={ province:string, city:string}const region:regionType={ province:"上海省", city:"上海市"}const tableList = ["鬼哥",15,region];关于"TypeScript中的重要概念有哪些"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"TypeScript中的重要概念有哪些"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
类型
数据
就是
概念
对象
属性
意思
重要
场景
接口
数据结构
用户
结构
语法
联合
函数
功能
动物
数组
方式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中智农互联网科技
互联网科技公司排名
中国互联网科技工作委员会毛军
互联网科技财经
互联网 卓越科技
奇士达互联网科技
有木互联网科技
融贸通互联网科技
互联网科技宣传片
科技伦理 互联网公司
深圳卡尔迅互联网科技有限公司怎么样
银川新华互联网科技学校地址
岳阳华臻互联网科技有限公司
苏州五指互联网络科技有限
互联网保险科技创业
用友工业互联网科技发展
中和天地互联网科技有限公司
广州梦谷互联网科技有限公司领导
互联网科技接地气
陕西彩京云互联网科技有限公司
互联网高科技
互联网科技产业
没上市的科技互联网公司
广州互联网科技公司
上海喔噻互联网科技
深圳艾佳互联网科技
互联网科技美容
华中科技大学互联网的牛人
济南小医互联网科技有限公司招聘
玉溪新华互联网科技怎么选