文章说明:文章内容为学习笔记,学徒之心,仅为分享; 如若有误,请在评论区指出,如若您觉得文章内容对您有一点点帮助,请点赞、关注、评论,共享
上一篇:第一阶段.模块二:学习笔记-js有关的
下一篇:第一阶段.模块二:学习笔记-es6的symbol
TypeScript 的基础类型
1、布尔值 :
let bool:boolean = false
2、数值:
let num:number = 123
3、字符串:
let str:string ='hello world'
let str2:string = `我是字面量形式`
4、数组:
方式一:数组里面只有一种数据类型
let arr:number[]
arr = [1,2,3,4,5]
方式二:数组里面只有一种数据类型
let arr1:Array<number>
arr1 = [1,2,3,4,5]
方式三:数组里面有多种数据类型
let arr2:(number|string)[]
arr2 = [1,2,3,'hellow world']
5、元组:
注1:元组可以看成是数组的扩展
注2:元组的数据长度是有限的
注3:元组要声明每一个item是哪种数据类型,元素不对应就会报错,多一个/少一个都不行
let tuple:[number,number,boolean,string]
tuple = [1,2,false,'hello world'] 正确
tuple = [1,2,3,'hello world'] 错误
6、枚举值:
注1:使用关键字 【enum】 来声明枚举
注2:枚举变量的首字母最好大写
注3:枚举里面的元素的key最好大写
---------------------
---------------------
默认枚举的索引:
enum Role {
SUPPER_ADMIN,
ADMIN,
USER
}
console.log(Role.SUPPER_ADMIN) // 返回的是索引 0
console.log(Role.ADMIN) // 返回的是索引 1
console.log(Role.USER) // 返回的是索引 2
---------------------
---------------------
自定义枚举的索引1:
enum Role {
SUPPER_ADMIN = 2,
ADMIN,
USER
}
console.log(Role.SUPPER_ADMIN) // 返回的是索引 2
console.log(Role.ADMIN) // 返回的是索引 3
console.log(Role.USER) // 返回的是索引 4
---------------------
---------------------
自定义枚举的索引2:
enum Role {
SUPPER_ADMIN,
ADMIN =4,
USER
}
console.log(Role.SUPPER_ADMIN) // 返回的是索引 0
console.log(Role.ADMIN) // 返回的是索引 4
console.log(Role.USER) // 返回的是索引 5
7、any 类型:
注1: any类型 就是js的数据类型都可以
注2: 尽量少用,能不能则不用
let val:any
val = 123
val = 'hellow world'
val = false
val = [123,456]
const arr:any[] =[1,'hello']
等等...
8、void 类型:
注1: void类型 就是什么类型都不是
注2: 尽量少用,能不能则不用
---------------------
---------------------
函数没有返回任何数据,即返回的就是void类型
**void类型的值可以是undefined和null**
const fun1 = (text:string):void =>{
console.log(text)
}
fun1('hello world') // 正确
fun1(123) // 错误 传入的值的类型不是字符串
9、null 和 undefined 类型:
注: null 和undefined 是其他类型的子类型
let un: undefined
un = undefined
let nu: null
nu = null
10、never 类型:
注1: never类型 是永远不存在的值的类型
注2: never类型 是任意类型的子类型
异常函数:
const errorFun = (msg:string): never => {
throw new Error(msg)
}
errorFun('函数的返回值是never类型')
死循环函数:
const dieFun = (): never => {
while(true){}
}
11、object 类型:
注1:存放的是对象在内存中(首地址)的引用
注2:object 类型,不是单指对象类型,而是除了原始类型以外的其他类型
例如: const foo: object = function(){}
const foo: object = [] const foo: object = {}
注2:对象类型的限制,可以用 const foo:{a:number,b:string} = {a:100,b:'你好'}来限制
let obj={
name :'小明'
}
let obj2 = obj
obj2.name ='花花'
console.log(obj.name) // 花花
const getObj = (obj:object) =>:void {
console.log(obj)
}
getObj(obj2) // 花花
12、类型断言:
注:类型断言就是我们开发人员自己决定变量的类型是什么
写法一:(value as 需要的类型)
写法二:(<需要的类型>value)
推荐第一种,因为在写recat代码的时候,第二种会被看成html的标签
const getLength = (value:string | number):number => {
if ((value as string).length || (<string>value).length == 0) {
return (value as string).length
} else {
return value.toString().length
}
}
getLength('hellow')
getLength(01234)