类型注解
- TypeScript 是 JS 的超集,TS 提供了 JS 的所有功能,并且额外的增加了:类型系统所有的 JS 代码都是 TS 代码
JS 有类型(比如,number/string 等),但是JS 不会检查变量的类型是否发生变化,而TS 会检查
TypeScript 类型系统的主要优势:可以显示标记出代码中的意外行为,从而降低了发生错误的可能性
// 相当于省略了 :number, 会自动进行类型推论, 根据初始值来推论
// let age = 18
let age: number = 18
console.log(age)
// string 基本数据类型
let username: string = '佐罗'
username.slice
let bool: boolean = false
bool = true
let gender: undefined = undefined
let hobby: null = null
类型注解总结:
- 将来不能将其他类型的值赋予这个变量
- 代码有提示, 在变量后面 . 可以直接看到当前类型所支持的所有属性和方法
TypeScript类型概述
可以将 TS 中的常用基础类型细分为两类:
- 1.JS 已有类型
原始类型,简单类型(number/string/boolean/null/undefined)
复杂数据类型(数组,对象,函数等) - 2.TS 新增类型
联合类型
自定义类型(类型别名)
1.接口
2.元组
3.字面量类型
4.枚举
5.void
6.and so on
原始数据类型
let age: number = 18
let username: string = '佐罗'
let bool: boolean = false
let gender: undefined = undefined
let hobby: null = null
数组类型
数组类型的两种写法:
// 写法一
let nums:number[] = [1,2,3,4]
// 写法二
let nameArr:Array<string> = ["zhangsan","lisi","wangwu"]
联合类型
需求:数组中既有 number 类型,又有 string 类型,这个数组的类型应该如何写?
let arr: (number | string)[] = [1, 'a', 3, 'b']
解释: | (竖线)在 TS 中叫做联合类型,即:由两个或多个其他类型组成的类型,表示可以是这
些类型中的任意一种
注意:这是 TS 中联合类型的语法,只有一根竖线,不要与 JS 中的或(|| 或)混淆了
let timerId: number | null = null
timerId = setTimeout(() => {}, 1000)
类型别名
目标:能够使用类型别名给类型起别名
- 类型别名(自定义类型) :为任意类型起别名
- 使用场景:当同一类型(复杂)被多次使用时,可以通过类型别名,简化该类型的使用
type ArrayTpye = (number | string) []
let arr1:ArrayTpye = [1,"2",3,"4"]
type ItemType = number | string
let arr5: ItemType[] = [1, 2, 3, 'abc']
let str1: ItemType = '123'
// 总结: 将一组类型存储到「变量」里, 用 type 来声明这个特殊的「变量」
总结
- 使用 type 关键字来创建自定义类型
- 类型别名(比如,此处的 ArrayTpye )可以是任意合法的变量名称
- 推荐使用大写字母开头
- 创建类型别名后,直接使用该类型别名作为变量的类型注解即可










网友评论