一些TS笔记
数据类型
代码 | 类型 | 介绍 |
---|---|---|
string | 字符串类型 | |
number | 数字类型 | |
boolean | 布尔类型 | |
any | 任意类型 | 一个变量设置为any后,相当于对该变量关闭了TS的 类型检测。(不建议使用) |
unknown | 未知类型 | 类型安全的any,不能直接赋值给其他变量 |
array | 数组类型 | |
object | 对象类型 | |
tuple | 元组类型 | 元祖就是固定长度的数组 |
enum | 枚举类型 | enum{a:1} |
void | void类型 | 表示没有返回值的函数 |
never | never类型 | 表示永远不会返回结果 |
例子
let s = '123';
let n = 123;
let b = true;
let u :unknown;
// 当unknown类型赋值给其他变量时需加判断
if(typeof s === 'string'){
s = u;
}
// 或使用断言,用来告诉解析器变量的实际类型
s = u as string;
s = <string>u;
// 表示字符串数组
let arr: string[];
let arr1: Array<string>
// {} 用来指定对象中可以包含哪些属性
// 语法 {属性名:属性值,属性名:属性值}
// 在属性后加一个 ? 表示可选属性
// [key:string]:any 表示可以添加任意类型的属性
let o:{name:string,age?:number,[key:string]:any};
// 元祖
let t: [string, number];
// 枚举
enum Gender {
male: 0,
female: 1
}
let i:{name: string, gender: Gender};
i = {
name: '孙悟空',
gender: Gender.female
}
// 类型的别名
// myType 表示 k 的值只能示 1-5 的数字
type myType = 1 | 2 | 3 | 4 | 5;
let k:myType;
// 函数例子
function fn(a:string, b:number):string {
return '123'
}
function fn1():never{
throw new Error('报错了')
}
// 设置函数结构的类型声明,定义函数结构
// 语法: (形参:类型,形参:类型 ...) => 返回值类型
let f: (a:number, b: number) => number{}