返回

TypeScript 的语法:初学者手册

前端

一、TypeScript 类型

TypeScript 是一种静态类型语言,这意味着您必须在编译时指定变量和函数的类型。这有助于捕获错误,使您的代码更具可读性。

1.1 基础类型

TypeScript 支持以下基础类型:

  • 数值 :包括整数和浮点数。
  • 布尔值 :true 或 false。
  • 字符串 :由引号或反引号引起来的一系列字符。

1.2 数组和元组类型

数组类型 表示可以存储多个相同类型值的变量。可以使用两种方式定义数组类型:

方式一:

let numbers: number[];

方式二:

let numbers: Array<number>;

联合类型 表示可以存储不同类型值的变量。例如,您可以定义一个联合类型,可以存储字符串或数字:

let strOrNum: string | number;

任意类型 表示可以存储任何类型的值的变量。不建议使用任意类型,因为它会降低代码的可读性和可维护性。

元组类型 是数组类型的扩展,主要是创建定长、定数据类型的数组。元组中的每个元素都有自己的类型,并且元组的长度是固定的。例如,您可以定义一个元组类型来存储姓名和年龄:

type Person = [string, number];

二、TypeScript 函数

TypeScript 函数与 JavaScript 函数非常相似。您可以在函数名前面指定函数的类型,也可以指定函数的参数类型和返回值类型。例如:

function add(a: number, b: number): number {
  return a + b;
}

三、TypeScript 类

TypeScript 类与 JavaScript 类非常相似。您可以在类名前面指定类的类型,也可以指定类的属性类型和方法类型。例如:

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.`);
  }
}

四、TypeScript 接口

TypeScript 接口类似于类,但它们没有实现。接口可以用于定义对象的形状,并可以用于类型检查。例如,您可以定义一个接口来定义一个具有姓名和年龄属性的对象:

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

五、TypeScript 模块

TypeScript 模块允许您将代码组织成更小的单元。您可以使用模块来组织相关的函数、类和接口。例如,您可以创建一个名为 person.ts 的模块,其中包含 Person 类和 greet 函数:

// person.ts
export 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.`);
  }
}

export function greet(person: Person) {
  console.log(`Hello, ${person.name}!`);
}

然后,您可以在其他模块中导入 person.ts 模块并使用 Person 类和 greet 函数。

// main.ts
import { Person, greet } from './person';

const person = new Person('John', 30);
person.greet();

greet(person);

结语

本指南介绍了 TypeScript 的基础语法。有关 TypeScript 的更多信息,请参阅官方文档。