返回

TypeScript 新手指南:从零开始构建你的第一个应用

前端

前言

JavaScript 是一种强大的语言,它为我们提供了许多构建 Web 应用的工具。然而,JavaScript 也是一种弱类型的语言,这意味着它不会对变量和数据类型进行检查。这使得 JavaScript 代码很容易出错,而且难以维护。

TypeScript 是 JavaScript 的超集,它扩展了 JavaScript 的语法,增加了类型系统、接口、类、模块等特性,使 JavaScript 代码更加健壮和可维护。TypeScript 代码可以在任何支持 JavaScript 的环境中运行,包括浏览器、服务器和移动设备。

TypeScript 基础

1. TypeScript 变量

TypeScript 中的变量与 JavaScript 中的变量类似,但是它们必须声明类型。变量类型的声明方式如下:

let name: string = "John Doe";

上面的代码声明了一个名为 name 的变量,它的类型是 string。这意味着 name 变量只能存储字符串值。

2. TypeScript 数据类型

TypeScript 中的数据类型与 JavaScript 中的数据类型类似,包括:

  • string:字符串类型,表示由字符组成的序列。
  • number:数字类型,表示整数或浮点数。
  • boolean:布尔类型,表示真或假。
  • null:空值类型,表示没有值。
  • undefined:未定义类型,表示变量尚未赋值。

3. TypeScript 运算符

TypeScript 中的运算符与 JavaScript 中的运算符类似,包括:

  • +:加法运算符,用于将两个数字相加。
  • -:减法运算符,用于将两个数字相减。
  • *:乘法运算符,用于将两个数字相乘。
  • /:除法运算符,用于将两个数字相除。
  • %:求余运算符,用于计算两个数字相除的余数。

4. TypeScript 函数

TypeScript 中的函数与 JavaScript 中的函数类似,但是它们必须声明返回类型。函数的声明方式如下:

function greet(name: string): string {
  return "Hello, " + name + "!";
}

上面的代码声明了一个名为 greet 的函数,它接受一个字符串类型的参数 name,并返回一个字符串类型的返回值。

5. TypeScript 对象

TypeScript 中的对象与 JavaScript 中的对象类似,但是它们可以使用接口来定义对象的结构。接口的声明方式如下:

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

上面的代码声明了一个名为 Person 的接口,它定义了一个 name 属性和一个 age 属性。

6. TypeScript 数组

TypeScript 中的数组与 JavaScript 中的数组类似,但是它们必须声明元素的类型。数组的声明方式如下:

let numbers: number[] = [1, 2, 3, 4, 5];

上面的代码声明了一个名为 numbers 的数组,它包含了五个数字元素。

7. TypeScript 类

TypeScript 中的类与 JavaScript 中的类类似,但是它们可以使用访问修饰符来控制类的成员的访问权限。类的声明方式如下:

class Person {
  private name: string;
  public age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  greet() {
    console.log("Hello, my name is " + this.name + "!");
  }
}

上面的代码声明了一个名为 Person 的类,它包含了两个属性 nameage,以及一个构造函数和一个 greet 方法。

8. TypeScript 模块

TypeScript 中的模块可以将代码组织成更小的单元,以便于管理和重用。模块的声明方式如下:

module MyModule {
  export function greet(name: string): string {
    return "Hello, " + name + "!";
  }
}

上面的代码声明了一个名为 MyModule 的模块,它包含了一个 greet 函数。

9. TypeScript 接口

TypeScript 中的接口可以定义对象的结构,以便于对对象进行类型检查。接口的声明方式如下:

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

上面的代码声明了一个名为 Person 的接口,它定义了一个 name 属性和一个 age 属性。

10. TypeScript 装饰器

TypeScript 中的装饰器可以