《TypeScript》入门与精通-数据类型的认识

本文介绍了JavaScript中的各种数据类型,包括数组、元组、枚举(数字和字符串类型)、any、undefined、null,以及函数的类型定义。文章强调了在TypeScript中使用类型系统进行类型约束的重要性,为编程学习者提供了基础规划和职业发展的建议。
摘要由CSDN通过智能技术生成

// 第一种

const arr:[] = [1,2,3]

// 第二种,定义了一个数组类型,并且数组的每一项都是数字类型

const arr:Array

元组


// 定义了一个变量colors,类型是特殊的数组,叫做元组,它的数组里面的值和位置必须是对应的

let colors:[string,number] = [‘a’,1]

元组是一种特殊的数组,它固定了数组的长度以及数组中值的类型

// 报错,第一个值必须是字符串类型,第一个值必须是数字类型

let colors:[string,number] = [1,‘a’];

// 报错,数组的长度必须是2,但是值的的数组长度是4了

let colors:[string,number] = [‘a’,1,‘a’,1];

枚举(enum)


声明了一个自定义的类型,是对标准数据类型的补充,作用是声明一组带名字的常量;常见的枚举类型可以分为两类:数字类型枚举字符串类型枚举;

数字类型枚举

enum Colors{

red,

black,

yellow = 100,

green

}

Colors.red // 0

Colors.black // 1

Colors.yellow // 100

Colors.green // 101

数字类型的枚举分为,有初始化常量的,和没有初始化常量的,假如第一个键值没有被赋值,那么默认值就为0,之后的值依次增加,假如有初始化常量的,那么之后的值会在上一个初始化的值的基础上依次增加;

字符串类型枚举

enum Colors{

red = ‘one’,

black = 100,

yellow = ‘two’,

green

}

Colors.red // one

Colors.black // 100

Colors.yellow // two

Colors.green // undefined

假如枚举的上一个键值是字符串类型,那么下一个键值将会是undefined,假如上面一个是数字,那么下面一个将依次增加1

Any


any代表任意类型,定义any类型代表这个变量可以赋值任何类型,其实就相当于在JS中定义变量;

let notSure: any = 4;

notSure = “hello” // 不会报错

Undefined


undefined也有自己单独的类型

let u: undefined = undefined;

Null


同理,null也有

let n: null = null;

函数


函数的话大致有以下几种情况:

有返回值

// 限定函数的返回值必须是string类型

function func():string{

return ‘22’

}

// 限定函数的返回值必须是数组类型,并且数组的值必须是数字

function func():number[]{ // 如果是任意值类型的数组,可以使用any[]

return [22]

}

无返回值

function func():void{

}

另外就是有参数

// 限定了参数a必须是数字,b必须是数字,并且返回值必须是数字类型

function func(a:number,b:number):number{

return a-b;

}

函数表达式

// 声明了一个变量,有两个参数,a和b,限定了参数a必须是数字,参数b必须是数字,通过箭头函数的方式规定返回值必须是数字

let func:(a:number,b:number) => number

对象(Object)


在ts文件中,在对象在声明的时候会固定属性类型,比如

let obj = {

name:‘oliver’,

age:18

}

如果在ts文件中这么写的话,那么就相当于固定了键值,key必须是对应的,在这里的示例中,其实完整的写法应该是如下,另外,对象中的位置顺序没有关系,也就是name和age的位置没有关系,可以先写name,也可以先写age

// 完整的写法

let obj:{name:string,age:number}={

name:‘oliver’,

age:18

}

复杂示例

let obj:{name:number[],age:(a:number,c:number)=>number[]}={

name:[1,2,3],

age(a,b){

return this.name

}

}

声明了一个对象obj,对象有两个key,第一个是name,第二个是age,name的值必须是一个有数字组成的数组,age的值的类型必须是函数,并且第一个参数必须是数字,第二个参数必须是数字,返回值必须是一个由数字组成的数组

写到这里就会发现类的类型定义的好麻烦,能最好能单独写,这样类型就可以复用,不然每一次都要写一长串,其实是有的,关键字type

type myType = {name:number[],age:(a:number,c:number)=>number[]};

let obj:myType = {

name:[1,2,3],

age(a,b){

return this.name

最后

如果你已经下定决心要转行做编程行业,在最开始的时候就要对自己的学习有一个基本的规划,还要对这个行业的技术需求有一个基本的了解。有一个已就业为目的的学习目标,然后为之努力,坚持到底。如果你有幸看到这篇文章,希望对你有所帮助,祝你转行成功。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值