Typescript 类型

一、类型声明

1、类型声明是TS非常重要的一个特点

2、通过类型声明可以指定TS变量的类型

3、指定类型后,当为变量赋值时,TS编译器会自动检查值是否符合类型声明,符合则赋值,否则报错。

4、自动类型判断:如果变量的声明和赋值是同时进行的,TS可以自动对变量进行类型检测

TypeScript 复制代码
let a = false;
a = true;  // 正确
a = '1'  // 错误

二、类型

字面量的用法:可以使用"|"来连接多个类型(联合类型)

TypeScript 复制代码
let b: "male" | "female";
b = "male";  // 正确
b = "female";  // 正确
b = "hello";  // 错误

unknown类型

TypeScript 复制代码
let e: unknown;

let s: string;

e = 'hello';

//  any 变量可以绘制给任意变量
//  unknown 实际上就是一个类型安全的any
//  unknown 类型的变量,不能直接赋值给其它变量
s = e; // 错误

if (typeof e === 'string') {
    s = e;
}

s = e as string;  //正确,类型断言
s = <string>e;

对象类型:

TypeScript 复制代码
// {}用来指定对象中可以包含哪些属性
let b: {name: string};
b = {name: '孙'} //正确
b = {name: '孙', age: ''} //错误

// 在属性名后边加上?,表示属性是可选的
let c: {name: string, age?: number};
c = {name: '孙'} //正确

// [propName: string]: any 表示任意类型的属性
let d: {name: string, [propName: string]: any}
d = {name: '孙', age: 18, gender: '男'};  // 正确

// 设置函数结构的类型声明:
// 语法:(形参:类型, 形参:类型 ...) => 返回值
let e: (a:number,b:number)=>number;
e = function(n1: number, n2: number):number {
    return n1 + n2;
}

数组类型:

TypeScript 复制代码
// string[] 表示字符串数组
let a: string[];

let b: Array<number>;

元组类型:

TypeScript 复制代码
// 元组,就是固定长度的数组,数据类型和长度都需要一致
let a: [string, string];
a = ['1', '2']; // 正确
a = ['1', '2', 3]; // 错误

枚举类型:

TypeScript 复制代码
enum Gender{
    Male = 0,
    Female = 1
}

let a: {name: string, gender: Gender};
a = {
    name: '李',
    gender: Gender.Male
}

类型的别名:

TypeScript 复制代码
type myType = 1 | 2 | 3 | 4 | 5;
let a: myType;
相关推荐
光影少年6 小时前
Taro 是如何解析入口配置 app.config.ts 和页面配置的?
微信小程序·小程序·typescript·reactjs·百度小程序·taro
AI情绪识别开源1 天前
HFpEF 心房-心室耦联效率无创监测方向(AVCEI)
typescript·laravel·perl
凤城老人1 天前
从 PyQt6 到 Electron:给 Edge TTS 做一个“多角色配音机“的踩坑手记
javascript·typescript·electron
zhousenshan2 天前
TypeScript 入门到精通
typescript
花旗蜕变3 天前
前端转 NestJS 全栈实践:从表单页面到微信业务系统
前端·typescript·nestjs
艺杯羹3 天前
Anthropic突袭发布Claude Code Mods!用TypeScript编写智能体中间件:告别AI误删与失控
人工智能·typescript·系统架构
FYKJ_20105 天前
SSM校园失物招领系统41452-计算机课程设计、毕业设计
java·vue.js·spring boot·python·mysql·typescript·spark
tiankongdeyige6 天前
游戏战斗系统学习第2篇:有限状态机 (FSM)
学习·游戏·typescript
FYKJ_20106 天前
django电影推荐系统55066-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·typescript·spark·django
进击的明明6 天前
TypeScript速通笔记(下)
前端·面试·typescript