在学习ts时,部分看的是24kcs老师的免费课程,有需要可点击 https://www.gulixueyuan.com/my/course/405
前言
-
声明时,需要加上
:类型
-
ts中变量一开始
声明的时候是什么类型
,后面赋值也只能用这个类型
的数据 -
大部分
基础类型
理解上与js
相同,主要关注下枚举
、元祖
、any
一、布尔型 boolean
let flag: boolean = true
二、数值型 number
let a1: number = 10 // 十进制
let a2: number = 0b1010 // 二进制
let a3: number = 0o12 // 八进制
let a4: number = 0xa // 十六进制
三、字符串 string
let name: string = 'blue'
字符串 和 数字 拼接成 新的字符串
let a5: string = '我有好多钱:'
let a6: number = 1000000000
console.log('字符串和数字之间能否拼接', a5 + a6) // 我有好多钱:1000000000
四、null
let nul: null = null
五、undefined
let und: undefined = undefined
null
和 undefined
是 所有类型的子类型
(可以把 undefined、null 赋值给其他类型的变量)
let und_num: number = 100
und_num = undefined // tsconfig中严格模式若开启,这一行会报错
六、数组
两种定义方式:
1、数据类型[ ]
// let 变量名: 数据类型[] = [值1, 值2, 值3]
let arr1:string[] = ['aaa']
多维数组
let arr11:string[][] = [['aaa'], ['bbb', 'ccc']]
2、Array<数据类型>
// let 变量名: Array<数据类型> = [值1, 值2, 值3]
let arr2:Array<number> = [1, 2]
七、元祖 Tuple
定义 数组
的时候,类型
和 个数
一开始就已经限定了
let tup: [string, boolean, number] = ['aaa', false, 123.123]
元祖
在修改时,也需要保持最初的设定
, 否则会报错- 对
不同索引的数据
使用方法时,也需要对应其类型
,否则会报错
// 报错
tup = [false, 123, 'aaa']
// 报错
console.log(tup[1].split(''))
八、枚举 enum
为一组数值起名字
,可通过名字来访问数值,也可通过数值得到名字- 枚举里面的每一个数据值都可以叫
元素
;每个元素都有自己的编号,编号从 0 开始递增 加1
- 可以手动修改编号
从任意值开始
,也可以手动指定任一值
enum Color {
red,
green,
blue
}
console.log(Color[1]) // green
// 手动修改编号从1开始
enum Color2 {
red = 1,
green,
blue
}
console.log(Color2[3]) // blue
// 全部手动指定编号
enum Color3 {
red = 2,
green = 4,
blue = 5
}
console.log(Color3[5]) // blue
// 根据元素找到编号
let color3: Color3 = Color3.red
console.log('color3', color3) // 2
日常使用场景
enum Sex {
male = 1,
female
}
九、any
表示任意类型
// any 类型
let an: any = 100
an = '改成字符串哈哈哈'
// 或者用在数组上:个数、类型不确定时
let arrAny: any[] = [100, 'abc', false]
let arrAny2: Array<any> = [200, 'abc', false]
// 但是,声明了any类型,有些报错无法触发(所以有好处也有坏处)
// 比如:对数值型执行split
console.log(arrAny[0].split(''))
十、void
表示没有任何类型
// 例如,函数无返回值
function showMsg (msg: string) :void {
console.log('对函数定义void', msg)
// 因为定义函数返回为void类型,所以返回正常值出去会报错,返回undefined、null不会报错
// return true
// return undefined
// return null
}
十一、object
// 例如:定义一个函数,参数是object类型,返回值也是object类型
function getObj(obj: object) :object {
console.log(obj)
return {
name: '哈哈哈',
age: 18
}
}
// console.log(getObj('1111')) // 错误
console.log(getObj({ sex: '女' })) // 正确
console.log(getObj(String)) // 正确
console.log(getObj(new String(111))) // 正确
console.log(getObj(new Array([1, 2, 3]))) // 正确