Ts在项目中的使用笔记之常用类型
2023-10-13 08:28:40
相信大家在接触Ts的时候,或多或少都会对Ts中的类型感到困惑,毕竟在Js中,类型只是用来做类型提示,但是在Ts中,类型却会限制变量或函数的使用,所以使用不当就会出现类型报错。
为了帮助大家更好的理解和使用Ts中的类型,我决定写一篇笔记,记录我在项目中遇到的Ts常用类型,以及它们的使用场景。
字符串 string
字符串是最基本的数据类型,用来存储文本信息。在Ts中,字符串可以使用单引号或双引号来表示。
let name: string = "John Doe";
let age: number = 30;
let isMarried: boolean = true;
数字类型 number
数字类型用于存储数字信息。在Ts中,数字类型可以是整数或浮点数。
let salary: number = 100000;
let pi: number = 3.14159265;
布尔类型 boolean
布尔类型用于存储真假值。在Ts中,布尔类型只有两个值:true和false。
let isLoggedIn: boolean = true;
let isNight: boolean = false;
数组类型 array
数组类型用于存储一组有序的数据。在Ts中,数组可以使用方括号来表示。
let numbers: number[] = [1, 2, 3, 4, 5];
let names: string[] = ["John", "Mary", "Bob"];
元组 Tuple
元组类型用于存储一组有序的数据,但与数组不同的是,元组中的每个元素都可以有不同的类型。在Ts中,元组可以使用圆括号来表示。
let person: [string, number] = ["John Doe", 30];
let product: [string, number, boolean] = ["iPhone", 1000, true];
枚举类型 enum
枚举类型用于定义一组常量。在Ts中,枚举可以使用enum来定义。
enum Color {
Red,
Green,
Blue
}
let myColor: Color = Color.Red;
对象类型 object
对象类型用于存储一组无序的数据。在Ts中,对象可以使用大括号来表示。
let person: object = {
name: "John Doe",
age: 30,
isMarried: true
};
类类型 class
类类型用于定义一个类。在Ts中,类可以使用class关键字来定义。
class Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
greet() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
let john = new Person("John Doe", 30);
john.greet();
接口类型 interface
接口类型用于定义一个契约。在Ts中,接口可以使用interface关键字来定义。
interface Person {
name: string;
age: number;
greet(): void;
}
class Employee implements Person {
name: string;
age: number;
salary: number;
constructor(name: string, age: number, salary: number) {
this.name = name;
this.age = age;
this.salary = salary;
}
greet() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old. My salary is ${this.salary}.`);
}
}
let john = new Employee("John Doe", 30, 100000);
john.greet();
联合类型 union
联合类型用于定义一个变量或函数可以有多种类型。在Ts中,联合类型可以使用竖线 | 来表示。
let nameOrAge: string | number = "John Doe";
nameOrAge = 30;
any类型
any类型表示任何类型。在Ts中,any类型可以用来表示任何值。
let value: any = "John Doe";
value = 30;
value = true;
unknown类型
unknown类型表示一个未知的类型。在Ts中,unknown类型可以用来表示任何值,但与any类型不同的是,unknown类型不能直接赋值给其他类型变量。
let value: unknown = "John Doe";
let name: string = value as string; // 必须使用类型断言
void类型
void类型表示没有返回值。在Ts中,void类型可以用来表示函数没有返回值。
function greet(): void {
console.log("Hello, world!");
}
never类型
never类型表示永远不会返回。在Ts中,never类型可以用来表示函数永远不会返回,或者函数会抛出异常。
function infiniteLoop(): never {
while (true) {
// 永远不会结束的循环
}
}
function throwError(): never {
throw new Error("This is an error.");
}