返回
TS类型新增,体会类型灵活应用之妙处!
前端
2024-01-03 23:01:23
TS 相较于 JavaScript 而言,新增了许多类型,极大地增强了其灵活度和扩展性。我们一起来看看 TypeScript 所特有的类型吧!
声明
TS 中的声明用于变量的类型,它可以帮助我们更好地组织代码并减少错误。常用的声明类型包括:
- 类型别名: 用于给类型起一个新的名字,便于代码阅读和理解。
type NumOrStr = number | string;
let id: NumOrStr = 'abc';
- 接口: 用于对象的形状,它定义了对象的属性及其类型。
interface Person {
name: string;
age: number;
}
let person: Person = {
name: 'John Doe',
age: 30
};
- 类: 用于创建可重用的对象模板,它定义了对象的属性、方法和构造函数。
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 person = new Person('John Doe', 30);
person.greet();
泛型
泛型允许我们定义可重用的类型,它们可以与任何类型一起使用。最常见的泛型类型包括:
- 数组: 用于存储一组元素,元素可以是任何类型。
let arr: Array<number> = [1, 2, 3];
- 元组: 用于存储一组固定数量的元素,元素可以是不同类型。
let tuple: [string, number] = ['John Doe', 30];
- 函数: 用于定义可重用代码块,它们可以接受任何类型作为参数并返回任何类型。
function sum<T>(a: T, b: T): T {
return a + b;
}
console.log(sum(1, 2)); // 3
console.log(sum('a', 'b')); // 'ab'
枚举
枚举用于定义一组常量,它们可以是字符串或数字。枚举类型包括:
- 数字枚举: 用于定义一组数字常量。
enum Direction {
Up = 1,
Down = 2,
Left = 3,
Right = 4
}
console.log(Direction.Up); // 1
- 字符串枚举: 用于定义一组字符串常量。
enum Color {
Red = 'red',
Green = 'green',
Blue = 'blue'
}
console.log(Color.Red); // 'red'
元组
元组类型用于存储一组固定数量的元素,元素可以是不同类型。元组类型包括:
- 元组: 用于存储一组固定数量的元素,元素可以是不同类型。
let tuple: [string, number] = ['John Doe', 30];
console.log(tuple[0]); // 'John Doe'
console.log(tuple[1]); // 30
这些只是 TypeScript 中新增的一些类型,它们极大地增强了 TypeScript 的灵活度和扩展性。掌握这些类型可以帮助您编写出更健壮、更可维护的代码。