返回

TypeScript 入门指南 - 类型探索

前端

TypeScript 扩展了 JavaScript 的类型系统,为 JavaScript 提供了静态类型检查。通过在 TypeScript 中定义变量的类型,我们可以让编译器检查变量的值是否符合类型要求,从而提高代码的健壮性和可维护性。

TypeScript 中的基础数据类型包括数字(number)、字符串(string)、布尔值(boolean)、null 和 undefined。除此之外,TypeScript 还支持联合类型(union type)、类型别名(type alias)、接口(interface)、类(class)和泛型(generics)等高级类型。

联合类型允许一个变量可以存储不同类型的值。例如,我们可以定义一个联合类型变量 age,它可以存储数字或字符串:

let age: number | string;
age = 20; // OK
age = '20'; // 也OK

类型别名允许我们为一个类型定义一个别名。例如,我们可以定义一个别名叫 MyString,它表示字符串类型:

type MyString = string;
let name: MyString;
name = 'John Doe'; // OK

接口允许我们定义一组属性及其类型。例如,我们可以定义一个接口叫 Person,它包含 name 和 age 属性:

interface Person {
  name: string;
  age: number;
}

let person: Person;
person = { name: 'John Doe', age: 20 }; // OK

类允许我们定义对象类型。例如,我们可以定义一个类叫 Person,它包含 name 和 age 属性,并且具有一个 getName 方法:

class Person {
  name: string;
  age: number;

  getName() {
    return this.name;
  }
}

let person = new Person();
person.name = 'John Doe';
person.age = 20;
console.log(person.getName()); // 'John Doe'

泛型允许我们定义通用的类型,这些类型可以适用于多种不同的数据类型。例如,我们可以定义一个泛型函数叫 sum,它可以计算两个数字或两个字符串的和:

function sum<T>(a: T, b: T): T {
  return a + b;
}

console.log(sum(1, 2)); // 3
console.log(sum('a', 'b')); // 'ab'

TypeScript 中的类型系统非常强大,它可以帮助我们写出更健壮的代码,减少运行时错误。通过本文的介绍,您应该已经对 TypeScript 中的类型有了一个基本的了解。