详解 TS 基本类型
TS 基本类型
- 类型声明
- 类型声明是 TS 非常重要的一个特点。
- 通过类型声明可以指定 TS 中变量(参数、形参)的类型。
- 指定类型后,当为变量赋值时,TS 编译器会自动检查值是否符合类型声明,符合则赋值,否则报错。
- 简而言之,类型声明给了变量设置了类型,使得变量只能存储某种类型的值。
- 语法:
// let 变量: 类型; let score; // let 变量: 类型 = 值; let score: number = 60; // function fn(参数: 类型,参数: 类型): 类型{ // ... // } function sum(a: number, b: number): number { return a + b; }
- 注意:当对变量的声明和赋值是同时进行的,TS 编译器会自动判断变量的类型。所以当变量的声明和赋值是同时进行的,可以省略类型声明。
- 类型:
类型 | 例子 | 描述 |
number | 1,-33,2.5 | 任意数字 |
string | "hi","hi",hi | 任意字符串 |
boolean | true,false | 布尔值 true 或 false |
字面量 | 其本身 | 限制变量的值就是该字面量的值 |
any | * | 任意类型 |
unknow | * | 类型安全的 any |
void | 空值(undefined) | 没有值(或 undefined) |
never | 没有值 | 不能是任何值 |
object | {name: '孙悟空'} | 任意的 JS 对象 |
array | [1,2,3] | 任意 JS 数组 |
tuple | [4,5] | 元素,TS 新增类型,固定长度数组 |
enum | enum{A,B} | 枚举,TS 新增类型` |
**联合类型:**可以使用 | 来连接多个类型。
let b: "male" | "female" b = male; b = female; let c: boolean | string b = true; b = "hello"; // 类型断言 let e: unknow; e = 10; e = "hello"; let s: string; e = 'hello'; if(typeof e === "string"){ // 类型判断以后可以赋值 s = e; } s = e as string; s = <string>e;
object
let a: object; a = {}; a = function () { }; // {} 用来指定对象中可以包含哪些属性 // 语法: {属性名:属性值,属性名:属性值} // 在属性名后边加上 ? ,表示属性是可选的。 let b: {name:string,age?:number} b = {name: "孙悟空",age: 18} // [propName: string]: any 表示任意属性都是可选的 let c: {name:string,[propName:string]:any} c = {name:"猪八戒",age: 19}
array
let a: string[]; let b: number[]; let c: Array<number>;
类型别名
type myType = 1 | 2 | 3 | 4 | 5; let a: myType; let b: myType; let c: myType;