第一阶段.模块二:学习笔记-TypeScript基本类型

文章说明:文章内容为学习笔记,学徒之心,仅为分享; 如若有误,请在评论区指出,如若您觉得文章内容对您有一点点帮助,请点赞、关注、评论,共享

上一篇:第一阶段.模块二:学习笔记-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
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 || (value).length == 0) {
        return (value as string).length
    } else {
        return value.toString().length
    }
}
getLength('hellow')
getLength(01234)

你可能感兴趣的:(第一阶段.模块二:学习笔记-TypeScript基本类型)