TypeScript 中的数据类型
在 TypeScript 中,数据类型是非常重要的概念,它可以帮助我们在开发过程中更好地控制变量的取值范围,提高代码的可读性和可维护性。本文将详细介绍 TypeScript 中常用的数据类型及其使用方法。
基本数据类型
1. 布尔类型(boolean)
布尔类型表示逻辑值,只能取 true
或 false
两个值。
let isDone: boolean = false;
2. 数字类型(number)
数字类型可以表示整数或浮点数。
let num: number = 123;
let decimal: number = 1.23;
3. 字符串类型(string)
字符串类型表示文本数据。
let str: string = 'hello, world';
4. 数组类型(array)
数组类型表示同一种类型的元素组成的集合。
let list: number[] = [1, 2, 3];
let fruits: Array<string> = ['apple', 'banana', 'orange'];
5. 元组类型(tuple)
元组类型表示具有固定长度和固定类型的数组。
let tuple: [number, string] = [1, 'hello'];
6. 枚举类型(enum)
枚举类型用于定义数值集合。
enum Color {
Red,
Green,
Blue,
}
let c: Color = Color.Green;
7. 任意类型(any)
任意类型可以赋值任意类型的值。
let notSure: any = 4;
notSure = 'hello';
8. null 和 undefined
null
和 undefined
是所有类型的子类型。
let u: undefined = undefined;
let n: null = null;
9. void 类型
void
类型表示没有返回值的函数。
function logMessage(): void {
console.log('Hello, world');
}
10. never 类型
never
类型表示永远不会发生的值。
function error(message: string): never {
throw new Error(message);
}
高级数据类型
1. 类型推断
TypeScript 可以根据赋值语句自动推断变量的类型。
let str = 'hello'; // 推断为 string 类型
2. 类型断言
类型断言可以在某些情况下手动指定变量的类型。
let someValue: any = 'hello, world';
let strLength: number = (someValue as string).length;
3. 类型别名
类型别名可以给一个类型起一个新名字。
type Name = string;
let myName: Name = 'Alice';
4. 字面量类型
字面量类型表示一个特定的字符串、数字或布尔值。
type Gender = 'male' | 'female';
let gender: Gender = 'male';
5. 接口
接口用来定义对象的属性和方法。
interface Person {
name: string;
age: number;
}
function printPerson(person: Person) {
console.log(`{person.name} is{person.age} years old`);
}
printPerson({ name: 'Alice', age: 30 });
6. 类
类是面向对象编程的基本概念。
class Animal {
name: string;
constructor(name: string) {
this.name = name;
}
sayHello() {
console.log(`Hello, my name is ${this.name}`);
}
}
let dog = new Animal('dog');
dog.sayHello();
7. 泛型
泛型可以在编写可复用的代码时灵活地指定类型。
function identity<T>(arg: T): T {
return arg;
}
let output = identity<string>('hello');
总结
本文讨论了 TypeScript 中常用的数据类型,包括基本数据类型和高级数据类型。掌握这些数据类型可以帮助我们更好地编写类型安全的代码,提高开发效率和代码质量。