typescript学习:基本类型,类型注解

本文内容如下

类型注解

如果你都有了答案,可以忽略本文章,或去TS学习地图寻找更多答案


类型注解

对声明,参数,或者返回值的说明或限制


基本类型:字符串,数字,布尔值

字符串
let title: string = '字符串'
let title: string = 123  //提示错误,因为title是字符串类型,只能赋值字符串


数字
let a:number = 123

布尔类型
let flag:boolean = true

对象

const person:{
    name:string,
    age:number
} = {
    name:'tao',
    age:18
}

数组

写法一:let name:Array<string> = []
写法二:let name:string[] = []


字符串数组
let names:Array<string> = ['tom','jeryy']   

数字数组
let names:number[] = [1,2,3,4]

混合
let person:(string | number)[] = ['tao', 32]


对象数组
1.直接声明
const person:{name:string,age:number}[] = [
    {name:'tao',age:18}
]

2.使用接口
interface User {
	name: string,
	age: number
}
let users:User[] = [{name: 'tao', age: 18}]

元组tuple:强限制

必须按规定顺序输入

let arr:[string, number, boolean] = ['ts', 8, true]
arr[3] = {}  //报错,因为没有定义对象

enum枚举

用于标识状态

注意:

  • 如果不赋值,就是索引
  • 赋值就是值
  • 如果前面赋了值,后面没,则会以前面为基础+1
没有赋值,是索引
enum Direction {
    Up,
   	Down,
    Left,
    Right
}
log(Direction.Up)  //0
log(Direction.[0]) //Up


赋值
enum Flag {
    success = 1,
    error = 2,
}
let f: Flag = Flag.success
console.log(f) //1


如果前面赋了值,后面没,则会以前面为基础+1
enum Flag {red, blue=5, green}
let f:Flag = Flag.green
console.log(f) //6

any

任意类型,跳过语法检查,什么都可以,等于JS,比如接口不知道返回什么类型

let name:any = 12     //正确
let name:any = ‘tao’  //正确
    
任意类型的数组
let list:any[] = [1,true,'free']
list[0] = 'lala'

用any替代选择器
let box:any = document.getElementById('box')

unknown

类型any,比any更加严格

any 和 unknown的区别

any 是任何类型的父类和子类
unkonwn 是任何类型的父类,不能是子类,更加严格

// 正确
let x: number = 3
let y: unknown = x   //把number赋值给unknown,让unknown当父类

// 正确
let x: number = 3
let y: any = x       //把number赋值给any,让any当父类

// 正确
let x: any = 3
let y: number = x    //把any赋值给number,让any当子类

// 错误
let x: unknown = 3
let y: number = x    //把unknown赋值给number,让unknown当子类

null 和 undefined

null 和 undefined 是任意类型的子类型,可以赋值给任意类型


never

表示从不会出现的值,不太常用,一般用any替代


学习更多

TS学习地图

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值