理解
TypeScript是一种开源的编程语言,它是JavaScript的一个超集,即所有的JavaScript代码都可以在TypeScript中运行。TypeScript通过添加静态类型、类和接口等新特性,使得JavaScript代码更易于维护和扩展。(我觉得typescript更加贴合业务需求,满足业务的各种逻辑)
特点
1.静态类型:
TypeScript引入了静态类型,允许在编译时发现错误并提供更好的代码提示。开发人员可以使用类型注解来声明变量的类型,从而提前发现类型错误。
基础静态类型包括:number,string,null,undefinde,symbol,boolean,void 。
注意:当变量的类型定义好之后,该变量就可以调用该类型上所有的属性和方法!!
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,它包含name和age两个属性。然后我们定义了一个类Student,它实现了Person接口。通过使用类型注解,我们可以在编译时检查name和age的类型。最后,我们创建了一个Student类的实例,并调用了sayHello方法。
我认为,TypeScript为JavaScript代码提供了更强大的开发工具和更严格的类型检查,使得开发人员可以在开发过程中更早地发现错误,并且能够编写更健壮和可靠的代码。它适用于大型项目和团队开发,可以提高代码的可维护性和可扩展性。