TypeScript 数据类型
TypeScript 具有丰富的数据类型,包括:
- 基本类型:Number、String、Boolean、Array、Tuple、Enum、Any、Void、Null、Undefined
- 复杂类型:Object、Function、Class、Interface、Type Alias、Generics
基本类型
基本类型包括:Number、String、Boolean、Array、Tuple、Enum、Any、Void、Null、Undefined。
Number
Number 类型用于表示数值,包括整数和浮点数。
let num1: number = 10;
let num2: number = 3.14;
String
String 类型用于表示字符串。
let str1: string = "Hello, world!";
let str2: string = 'Hello, world!';
Boolean
Boolean 类型用于表示布尔值,只有两个取值:true 和 false。
let bool1: boolean = true;
let bool2: boolean = false;
Array
Array 类型用于表示数组,可以存储不同类型的数据。
let arr1: number[] = [1, 2, 3];
let arr2: string[] = ["apple", "banana", "orange"];
let arr3: boolean[] = [true, false, true];
Tuple
Tuple 类型用于表示元组,可以存储不同类型的数据,并且元素的数量和类型都可以自定义。
let tuple1: [string, number] = ["apple", 10];
let tuple2: [string, boolean, number] = ["apple", true, 10];
Enum
Enum 类型用于表示枚举,可以将一组相关常量定义为一个整体。
enum Color {Red, Green, Blue};
let c1: Color = Color.Red;
let c2: Color = Color.Green;
let c3: Color = Color.Blue;
Any
Any 类型用于表示任意类型,可以用于任何场景。
let any1: any = 10;
let any2: any = "Hello, world!";
let any3: any = true;
Void
Void 类型用于表示没有任何类型,通常用于函数没有返回值的场景。
function sayHello(): void {
console.log("Hello, world!");
}
Null
Null 类型用于表示空值,表示一个空对象指针。
let null1: null = null;
Undefined
Undefined 类型用于表示未定义的值,表示变量没有被赋值。
let undefined1: undefined = undefined;
复杂类型
复杂类型包括:Object、Function、Class、Interface、Type Alias、Generics。
Object
Object 类型用于表示对象,可以存储任意类型的数据。
let obj1: object = {name: "John", age: 30};
let obj2: object = [1, 2, 3];
let obj3: object = "Hello, world!";
Function
Function 类型用于表示函数,可以定义函数类型,并可以作为参数传递。
function add(x: number, y: number): number {
return x + y;
}
let func1: (x: number, y: number) => number = add;
Class
Class 类型用于表示类,可以定义类的属性和方法。
class Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
sayHello() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
let p1: Person = new Person("John", 30);
p1.sayHello();
Interface
Interface 类型用于表示接口,可以定义类的属性和方法。
interface Person {
name: string;
age: number;
sayHello(): void;
}
class Student implements Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
sayHello() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
let s1: Student = new Student("Jane", 25);
s1.sayHello();
Type Alias
Type Alias 类型别名用于给一个类型定义一个新的名称。
type Name = string;
type Age = number;
let name1: Name = "John";
let age1: Age = 30;
Generics
Generics 泛型用于表示一个类型参数,可以用于定义可复用的函数和类。
function add<T>(x: T, y: T): T {
return x + y;
}
let result1 = add<number>(10, 20);
let result2 = add<string>("Hello, ", "world!");