前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >TypeScript联合类型 接口

TypeScript联合类型 接口

原创
作者头像
HueiFeng
修改于 2020-04-01 06:40:55
修改于 2020-04-01 06:40:55
5480
举报
文章被收录于专栏:HueiFeng技术专栏HueiFeng技术专栏

TypeScript联合类型

联合类型表示取值可以为多种类型中的一种

如下所示

代码语言:txt
AI代码解释
复制
/**
 * 联合类型
 */
var muchtype:string|number="hello";
muchtype=1;

这一块我们必须使用string或者number都支持的类型,那么下面我们可以进行调用扩展方法toString()

代码语言:txt
AI代码解释
复制
/**
 * 联合类型
 * 注意:如果说我们使用字符串的length属性那么我们需要注意,如果是number类型是不支持的
 * 这一块我们必须使用string或者number都支持的类型,那么下面我们可以进行调用扩展方法toString()
 * 
 */
var muchtype:string|number="hello";
muchtype="";
muchtype=1;
console.log(muchtype.length)
console.log(muchtype.toString().length)

TypeScript中对象类型-接口

接口可以描述一种抽象的行为,也可以描述对象的结构形状,当然我们也需要遵守接口命名规范,接口一般首字母大写 当然在一些语言上面建议接口的名称前缀加上I前缀

代码语言:txt
AI代码解释
复制
interface IStudent{
    name:string
}
/**
 * 接口规范了name属性是必须要写的所以我们要通过第四行代码进行使用
 * 接口起到一个约束作用约束我们这些属性字段必须一对一的编写.
 */
var obj1:IStudent;
obj1="11";
obj1=1;
obj1={name:"11"};

如果说我们进行修改接口如下所示

代码语言:txt
AI代码解释
复制
interface IStudent{
    name:string,
    age:number
}

那么我们必须要给age进行赋值操作

代码语言:txt
AI代码解释
复制
obj1={name:"11",age:1};

可选类型nullable

代码语言:txt
AI代码解释
复制
interface IStudent
{
    name:string,
    age?:number //?为一个可空类型nullable 他是一个可有可无的,那么在下面我们可以不用对age进行赋值操作也不会出现异常
}

var obj2={name:"张三",age:1}

在我们属性不确定的时候我们可以通过如下方式实现,any必须是任意类型,

因为当我们进行使用不确定属性个数的时候会有局限性.

当然下面的属性中比如说string number我们也可以使用联合类型,这一块我们后续可以根据实际需求进行变动即可

代码语言:txt
AI代码解释
复制
//属性个数不确定的时候 
interface IStudent{
    name:string,
    age?:number,
    [propName:string]:any
}

var obj3:IStudent={name:"Mr.A",age:1,sex:"男",birthday:"2020-03-20"}

只读属性 readonly

代码语言:txt
AI代码解释
复制
interface IStudent{
    name:string,
    readonly age:number
}
var obj3:IStudent={name:"Mr.A",age:18}
obj3.name="Mr.B";
obj3.age=19;

通过如上代码我们可以发现当我们对obj3.age进行赋值的时候会发现感知错误提示 如下所示

也就是说一旦我们赋初始值以后那么后面我们就不能将其进行修改了.

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
typescript基础笔记
typescript早在2013年就发布了第一个正式版本,印象中一直到了19年才大火起来。三年过去了,一直是可用可不用的状态,于是很多人都没学习使用。直到react和vue开始捆版上了ts,前端圈也开始了“内卷”,ts已经是不得不用的状态了。
wade
2022/03/28
7520
TypeScript数组类型
类型+方括号 在我们创建数组的时候同样我们可以定义数组内数据的类型,如下所示 var arr:number[]=[1,2,3] var arr2:string[]=["1","2","3"] var arr3:any[]=[1,"2",true] 泛型Array<T> 如下代码所示我们可以以泛型的方式进行创建数组 var arrType:Array<number>=[1,2,3] var arrType1:Array<string>=["1","2","3"] var arrType2:Array<any>
HueiFeng
2020/04/09
8500
全网最全的,最详细的,最友好的 Typescript 新手教程
全网最全的,最详细的,最友好的 Typescript 新手教程,拿走不谢,希望给个点赞,在看,转发,谢谢
公众号---人生代码
2021/04/22
6.1K0
全网最全的,最详细的,最友好的 Typescript 新手教程
Typescript 使用日志(干货)
最近这两年,有很多人都在讨论 Typescript,无论是社区还是各种文章都能看出来,整体来说正面的信息是大于负面的,这篇文章就来整理一下我所了解的 Typescript。
刘小夕
2020/09/07
2.5K0
【文末送书】Typescript 使用日志
最近这两年,有很多人都在讨论 Typescript,无论是社区还是各种文章都能看出来,整体来说正面的信息是大于负面的,这篇文章就来整理一下我所了解的 Typescript。
lucifer210
2020/09/30
2.9K0
【文末送书】Typescript 使用日志
TypeScript 初学者入门学习笔记(一)
TypeScript 的类型系统,在很大程度上弥补了 JavaScript 的缺点。
前端达人
2021/06/16
1.8K0
TypeScript学习笔记(二)—— TypeScript基础
JavaScript 的类型分为两种:原始数据类型(Primitive data types)和对象类型(Object types)。
张果
2022/10/04
5.1K0
TypeScript学习笔记(二)—— TypeScript基础
TypeScript 强大的类型别名
类型别名会给一个类型起个新名字。类型别名有时和接口很像,但是可以作用于原始值,联合类型,元组以及其它任何你需要手写的类型。
coder_koala
2019/11/20
3.4K0
TypeScript 对象的类型-接口
在 TypeScript 中,我们使用接口(Interfaces)来定义对象的类型
Leophen
2020/07/13
3.4K0
TypeScript接口类型
我们经常说道的接口比如后端写了一个接口给前端调用,接口包括地址、参数、请求方式等等,参数规定了传参的类型。而在TS中的接口的定义是什么呢?
不叫猫先生
2023/11/20
2200
TypeScript接口类型
TypeScript基础知识
TypeScript是JavaScript的一个超集,支持ECMAScript6标准。
岳泽以
2022/11/22
2.2K0
TypeScript基础知识
Typescript常看常新
在看了同事推荐的ts教程后,发现自己还是有很多不会的,所以整理出一些自己学到的新知识点,希望各位也能有所收获!(我就写给自己看看,不要太当回事哈哈哈
y191024
2024/01/22
2500
Typescript常看常新
TypeScript 学习笔记(一)
TypeScript 是 JavaScript 的一个超集,主要提供了 类型系统 和对 ES6 的支持,由 Microsoft 开发。 目前应用:vue3.0,angular2.0,vscode, react ....
前端老鸟
2020/05/18
2.8K0
TypeScript基础(三)扩展类型-接口和类型兼容性
在TypeScript中,接口(Interface)用于定义对象的结构和类型。它是一种约定,用于描述对象应该具有哪些属性和方法。接口可以提高代码的可读性、可维护性和可重用性。
can4hou6joeng4
2023/11/17
3230
理解 TypeScript 类型拓宽
之前的文章,我们已经介绍了 TypeScript 的类型收窄,本文我们将介绍 TypeScript 的类型拓宽。在一些情况下,TypeScript 从上下文推断类型,减少了程序员显式指定明显类型的需要。例如:
阿宝哥
2020/04/22
1.6K0
TypeScript 基础教程
通过引入强类型系统,补充JS的短板。原生JS类型的灵活性导致在实际环境中可能会出现各种不确定的bug。通过使用TS,我们可以在开发阶段既预测这些可能由类型转换导致的错误,从而提前规避bug,开发出更健全的程序。
路过的那只狗
2020/11/14
1.1K0
【TypeScript】005-对象的类型——接口 与 数组的类型
在面向对象语言中,接口(Interfaces)是一个很重要的概念,它是对行为的抽象,而具体如何行动需要由类(classes)去实现(implement)。
訾博ZiBo
2025/01/06
990
Node.js 项目 TypeScript 改造指南(二)
最近笔者把一个中等规模的 Koa2 项目迁移到 TypeScript,和大家分享一下 TypeScript 实践中的经验和技巧。
WecTeam
2019/12/26
3.6K0
TypeScript 类型体操 - 基础操作
类型即 number、boolean、string 等基础类型和 Object、Function 等复合类型,它们是编程语言提供的对不同内容的抽象:
Cellinlab
2023/05/17
1.9K0
【万字长文】TypeScript入门指南
本文主要讲述叶秋学长通过一个月对TypeScript的学习整理出一份完整的入门指南,希望对正在学习前端的小伙伴有所帮助~
叶秋学长
2023/12/07
6840
【万字长文】TypeScript入门指南
相关推荐
typescript基础笔记
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文