TypeScript—4.对象理解导读

本文详细介绍了TypeScript中的对象概念,包括如何创建对象、定义属性和方法,以及通过接口进行类型注解。同时,讲解了内置对象如数组的操作,如length、push和遍历方法。此外,还探讨了枚举的使用,包括数字枚举和字符串枚举,强调了枚举成员的只读特性。
摘要由CSDN通过智能技术生成

4.1对象概述

	TypeScript中的对象,是对生活中具体事物的抽象,使得我们可以通过
代码来描述具体的事情。
Ts中的对象也是由特征和行为组成,他们有各自的专业的名称,属性(特征)
和方法(行为)

理解TS中的对象:一组相关的属性和方法的集合,并且是无序的。

4.2创建对象

   对象的语法
let person = {}

此处的{}(花括号、大括号)来表示对象。而对象中没有属性和方法时,称为
空对象。
对象的属性和方法,采用键值对的形式,键、值之间使用冒号(:)来配对。
键(key)->名称,值(value)->具体数据
多个键值对之间,通过逗号(,)进行分割(类比数组)
属性和方法的区别:值是不是函数,如果是,就称为方法,否则,就是普通属性
注意:函数用作方法的时候,可以省略function后面的函数名称,也叫作匿名函数。

4.3接口

4.3.1对象的类型注解

TS中的对象是结构化的,结构简单的来说就是对象有什么属性和方法

   let person:{//对象的结构化类型
       name:String;
       age:number;
   }
   person = {
       name:'刘老师',
       age:18
   }

对象的结构化类型(类型注解):建立一种契约,约束对象的结构
注意点:类型注解中键值对的值为类型

4.3.2对象方法的类型注解

let person:{
    sayHi:()=>void
    sing:(name:string) => void
    sum:(num1:number,num2:number)=>number
}

箭头(=>)左边小括号中的内容:表示方法的参数类型。
箭头(=>)右边的内容:表示方法的返回值类型。
方法类型注解的关键点:1.参数 2.返回值

4.3.3接口的使用

直接在对象名称后面写类型注解的坏处:1.代码结构不够简洁 2.无法复用类型注解
接口:为对象类型注解命名,并为你的代码建立约束来约束对象的结构

interface IUser{
    name:string
    age:number
}
let p1:IUser = {
    name:'jack',
    age:18
}

4.3.4取值和存值

取值:拿到对象的属性和方法并使用
获取对象中的属性,称为访问属性
获取对象中的方法并调用,称为调用方法
通过点语法(.)就可以访问对象中的属性
存值:即修改(设置)对象中属性的值
注意:设置的新值,也必须符合该属性的类型要求
注意:几乎不会修改对象中的方法

4.4内置对象

对象的两种来源:1.自己创建 2.其他人创建(编程语言自带或第三方)
内置对象:是TS/JS自带的一些基础对象,提供了TS开发时所需的基础或必要能力。
已经用过的内置对象:数组

4.4.1数组对象

数组是TS最常用、最重要的内置对象之一。
数组的常用的操作:添加、删除、遍历、过滤
length属性:获取数组长度
push方法:添加元素(在数组的最后面添加元素,并返回其长度)
forEach方法:遍历数组forEach方法的参数是一个函数,这个函数也称为回调函数。forEach里面的回调函数是作为forEach方法的实参传入的,不应该指定类型注解。
some方法:遍历数组,查找是否有一个满足条件的元素(如果有,就可以停止循环),some方法的返回值是布尔值,如果找到满足条件的元素,结果为true,否则为false

4.4.2 TS推论

在TS中,某些没有明确指出类型的地方,类型推论会帮助提供类型,换句话说:
由于类型推论的存在,这些地方的类型注解可以省略不写
发生类型推论的2种常见场景:1.声明变量并初始化 2.决定函数返回值时

4.5枚举

枚举是组织有关联数据的一种形式
使用场景:当变量的值,只能是几个固定值的一个,就应该使用枚举实现
注意:js中是没有枚举,这是TS为了弥补js自身的不足而新增的
创建枚举的语法

enum 枚举类型 {成员1,成员2,...}

实例:

enum Gender {Female,Male}
enum Player {X,O}

约定枚举名称、成员名称以大写字母开头
多个成员之间使用逗号(,)分隔
注意:枚举中的成员,根据功能自己制定!
注意:枚举中的成员不是键值对!
使用枚举
枚举是一种类型,因此可以将其作为变量的类型注解

enum Gender {Female,Male}
let userGender: Gender

访问枚举中的成员,例如:

userGender = Gender.Female
userGender = Gender.Male

注意:枚举中的成员是只读的,也就是说枚举中的成员是可以访问的,但是不能赋值。

Gender.Female = '男' //错误

枚举成员是有值的,默认是0开始自增的数值。
枚举成员的值为数字的枚举,称为数字枚举
给枚举中的成员初始化值

enum Gender {Female = 1 ,Male} //Female => 1 ,Male => 2
enum Gender {Female = 1 ,Male = 100} //Female => 1 ,Male => 100

字符串枚举:枚举成员的值是字符串

enum Gender {Female = '女' ,Male = '男'}

注意:字符串枚举没有自增长行为,因此,每个成员必须有初始值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值