typescript ts 基础知识之类型声明
定义变量类型、函数参数类型、函数返回值类型
let 变量: 类型 let 变量: 类型 = 值 function fn( 参数:类型,参数:类型): 返回值类型{ ...... }
1. : number 数字
2. : string 字符串
3. :boolean 布尔值
4. : 字面量 限制变量的值就是该字面量的值,eg:let a: 10; a = 11会报错
5. : any 任意类型,相当于对该变量关闭了TS类型检测,不建议使用
let e e = hello // 可以 let s: string s = e // 可以
6. : unknown 类型安全的any,不能直接赋值给其他变量
let e:unknown e = true // 可以 e = hello // 可以 let s: string s = e //报错 //解决 if(typeof e === string){ s = e } s = e as string //类型断言,用来告诉解析器变量的实际类型 s = <string>e
7. : void 空值 没有值(或undefined)常用来设置函数的返回值
8. : never 不能是任何值,永远不会返回结果(throw new Error(报错了))
9. : object 任意js对象,此种形式不常用,常用以下方式
// {}用来指定对象中包含哪些属性,语法:{属性名:属性值类型,属性名:属性值类型,... } // 在属性名后边加?,表示属性是可选的 let b: {name: string, age?: number} b = {name: tom, age: 18} //可以 b = {name: jack} //可以 // [propName: string]: any 表示任意类型的属性 let c: {name: string, [propName: string]: any} c = {name: may, age: 12, gender: 女} //可以 //设置函数结构的类型声明,语法:(形参:类型,形参:类型,...) => 返回值类型 let d: (a:number, b:number) => number d = function(n1:string, n2: string): number{ return 10 } //报错,参数类型错误
10. : array 任意js数组,常用方式:类型[],Array<类型>
let e: string[] let f: Array<number>
11. : tuple 元组,TS新增类型,固定长度数组,语法:[类型,类型,类型,... ]
let h: [string, string] h = [hello, 123] // 报错,类型错误 h = [hello, world, 你好] //报错,个数多了
12. : enum 枚举,TS新增类型,将可能的情况列举出来
enum Gender{ Male = 0, Female = 1 } let i: {name: string, gender: Gender} i = { name: hi, gender: Gender.Male, //数据库中会将gender值存为0 } console.log(i.gender === Gender.Male)
注:
a. 如果变量的声明和赋值是同时进行的,TS可以自动对变量进行类型检测,可以省略类型声明
b. 可以使用 | (或)来链接多个类型(联合类型),结合字面量,可以将变量限制在某几个值之间
c. 声明变量时不指定类型,则TS解析器自动判断变量类型为any,若不知类型可使用unknown类型
d. &表示同时,let j: {name: string} & {age: number},j同时满足含有name和age属性
e. 类型别名 type
type myType = 1|2|3|4|5 let k: myType let l: myType
上一篇:
JS实现多线程数据分片下载