TypeScript是一种由微软开发的JavaScript的超集,它添加了可选的静态类型和基于类的面向对象编程特性。这些特性使得TypeScript在大型应用和团队协作中显得尤为重要。本文将带你从基础类型开始,逐步深入到TypeScript的复杂类型系统。
一、TypeScript基础类型
TypeScript的基础类型包括:
- 数字(number):表示整数和浮点数。
- 字符串(string):表示文本。
- 布尔值(boolean):表示真或假。
- 空值(null):表示无值。
- undefined:表示未定义。
- Symbol:表示一个唯一的值。
let age: number = 30;
let name: string = '张三';
let isTrue: boolean = true;
let nullValue: null = null;
let undefinedValue: undefined = undefined;
let symbol: Symbol = Symbol();
二、字面量类型
字面量类型指的是直接使用具体的值来定义类型,如:
- 字符串字面量:
'hello'、'world' - 数字字面量:
123、3.14 - 布尔字面量:
true、false - 模板字符串:使用反引号(
`)创建,可以包含变量和表达式。
let message: string = `Hello, ${name}`;
三、联合类型
联合类型表示一个变量可以是多种类型中的一种。使用竖线(|)分隔不同类型。
let input: string | number = 'Hello' | 123;
四、元组类型
元组类型用于表示一组已知数量的元素,每个元素具有不同的类型。
let tuple: [number, string] = [123, '张三'];
五、数组类型
数组类型表示一个包含一系列元素的列表,可以使用方括号([])来定义。
let array: number[] = [1, 2, 3];
let array2: string[] = ['Hello', 'World'];
六、枚举类型
枚举类型允许你为一组值命名。
enum Color {
Red,
Green,
Blue
}
let c: Color = Color.Green;
七、接口
接口(Interface)用于定义对象的类型,包含一系列属性和方法的定义。
interface Person {
name: string;
age: number;
}
let person: Person = {
name: '张三',
age: 30
};
八、类型别名
类型别名可以给一个类型创建一个别名,使得代码更加简洁。
type UserID = number | string;
let userId: UserID = 123;
let userId2: UserID = 'abc';
九、泛型
泛型允许你创建可重用的组件和函数,而不必暴露它们的任何具体类型。
function identity<T>(arg: T): T {
return arg;
}
let output = identity<string>('Hello World');
十、映射类型
映射类型允许你从一个类型创建一个新的类型,通过映射每个属性到另一个新的属性。
type MapType<T> = {
[P in keyof T]: T[P];
};
type User = {
name: string;
age: number;
};
let mappedType: MapType<User> = {
name: '张三',
age: 30
};
总结
通过以上内容,相信你已经对TypeScript的核心概念有了深入的了解。掌握这些类型和特性,能够帮助你更好地编写JavaScript代码,提高代码的可读性和可维护性。在后续的学习过程中,你可以继续深入研究TypeScript的高级特性,如装饰器、类等。
