Typescript | 青训营

79 阅读4分钟

理解

TypeScript是一种开源的编程语言,它是JavaScript的一个超集,即所有的JavaScript代码都可以在TypeScript中运行。TypeScript通过添加静态类型、类和接口等新特性,使得JavaScript代码更易于维护和扩展。(我觉得typescript更加贴合业务需求,满足业务的各种逻辑)

特点

1.静态类型:

TypeScript引入了静态类型,允许在编译时发现错误并提供更好的代码提示。开发人员可以使用类型注解来声明变量的类型,从而提前发现类型错误。

基础静态类型包括:numberstringnullundefindesymbolbooleanvoid 。

注意:当变量的类型定义好之后,该变量就可以调用该类型上所有的属性和方法!!

2.类和接口:

TypeScript支持面向对象编程的特性,包括类和接口。开发人员可以定义类和接口,以及类的继承和接口的实现,从而实现更结构化和模块化的代码。

TypeScript 接口是一系列抽象方法的声明,是方法特征的集合,方法本身是抽象的,需要由具体的类去实现,然后第三方就可以通过这组抽象方法调用,让具体的类执行具体的方法。

在接口中使用联合类型

接口中可以将数组的索引值和元素设置为不同类型,索引值可以是数字或字符串。

接口可以通过继承其他接口来扩展自己,关键字使用extends

TypeScript 类的定义和简单使用

TypeScript类描述了所创建的对象共同的属性和方法

定义类的关键字为 class,后面紧跟类名,类主要包含以下几个模块(类的数据成员):

(1)字段 − 字段是类里面声明的变量。字段表示对象的有关数据。

(2)构造函数 − 类实例化时调用,可以为类的对象分配内存。

(3)方法 − 方法为对象要执行的操作。

3.编译时类型检查:

TypeScript在编译时对代码进行类型检查,帮助开发人员发现并解决潜在的类型错误。这样可以避免在运行时出现类型相关的错误。

  • 至少需要和编译期检查一样严格,否则就失去了编译期检查提供的保证。
  • 如有必要,可以比编译期检查更严格,例如,年龄需要大于等于 0。

自动创建 JSON Schema

  • 基于 TypeScript 代码生成 JSON Schema

    a.  比如 typescript-json-schema 这个工具就可以做到这一点(同时支持作为命令行工具使用和通过代码调用)。

    b.  需要确保 Schema 和代码同步更新。

  • 基于 JSON 输入示例生成

    a.  需要确保 Schema 和代码同步更新。

    b.  如果提供的 JSON 输入示例和实际输入不一致,可能导致错误。

    c.  仍然需要确保 Schema 和代码同步更新。

基于装饰器的类校验

比如使用 class-validator 这个库。

  • 基于类属性的装饰器。

  • 和 Java 的 JSR-380 Bean Validation 2.0 (比如 Hibernate Validator 就实现了这一标准)很像。

    a.  此类 Java EE 风格的库还有 typeorm (ORM 库,类似 Java 的 JPA)和 routing-controllers (用于定义 API,类似 Java 的 JAX-RS)。

4.丰富的工具支持:

TypeScript具有丰富的工具支持,例如强大的代码编辑器(如VS Code)和代码重构工具。这些工具可以提供更好的开发体验,提高开发效率。

下面是一个简单的TypeScript示例:

// 定义一个接口
interface Person {
  name: string;
  age: number;
}

// 定义一个类,实现接口
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'm ${this.age} years old.`);
  }
}

// 创建一个实例
const student = new Student("Alice", 20);
student.sayHello();

**

在上面的示例中,我们定义了一个接口Person,它包含nameage两个属性。然后我们定义了一个类Student,它实现了Person接口。通过使用类型注解,我们可以在编译时检查nameage的类型。最后,我们创建了一个Student类的实例,并调用了sayHello方法。

我认为,TypeScript为JavaScript代码提供了更强大的开发工具和更严格的类型检查,使得开发人员可以在开发过程中更早地发现错误,并且能够编写更健壮和可靠的代码。它适用于大型项目和团队开发,可以提高代码的可维护性和可扩展性。