Typescript | 青训营笔记

177 阅读3分钟

TypeScript (简称 TS) 是一种由微软开发和维护的开源编程语言,它是 JavaScript 的一个超集,意味着它包含了所有 JavaScript 的语法和特性,并且额外提供了强大的类型系统、面向对象的编程、枚举类型等特性。

作为一种静态类型检查器,TypeScript 在开发大型应用程序时非常有用,可以帮助开发人员避免在运行时出现的错误。TS 的类型系统可以自动完成类型检查,减少了 error-driven 开发中的错误数量,使得代码更加健壮和可维护。

下面是 TS 的优缺点和社区活跃度:

优点:

  • 编码更加严谨,减少了运行时错误。
  • 强大的类型系统和接口能力,使得代码更加灵活和易于维护。
  • 支持 ES6+ 中的最新特性,能够更好地支持现代化的前端开发。
  • 支持在最新版本的 Node.js 和浏览器中使用。
  • 社区活跃度较高,有大量的开源项目和文档资源。

缺点:

  • 语言本身学习曲线较陡峭,需要花费时间进行学习。
  • 与传统的 JavaScript 不同,需要通过 TypeScript Compiler 对代码进行编译后才能运行。

社区活跃度: TypeScript 社区活跃度较高,有许多开源项目和文档资源。它也是 Angular 框架的官方语言,这也促进了它在社区中的发展和推广。

下面是 TS 常用类型基本概念:

基础类型:

  • boolean: 布尔类型 true/false。
  • number: 数字类型,包括整数和浮点数。
  • string: 字符串类型。
  • null 和 undefined: 表示空值和未定义值的两个类型。
  • void: 表示没有返回值的函数的返回类型。

对象类型:

  • array: 数组类型。
  • tuple: 元组类型,表示一个已知元素数量和类型的数组。
  • object: 对象类型。
  • function: 函数类型。

接口:

  • interface: 接口是一种用来定义对象类型的方式,它可以包含属性、方法、函数等。
  • type: 类型别名是一种给一个类型取一个新名字的方式。

断言:

  • as: 类型断言,用于手动指定变量类型。
  • !: 非空断言,用于告诉编译器变量不会为 null 或 undefined。

下面是 TS 进阶用法:

类: TypeScript 支持面向对象编程,可以使用类(class)来创建对象,类可以包括属性和方法,还支持继承和多态。

typescriptCopy Code
class Animal {
  name: string;
  constructor(name: string) {
    this.name = name;
  }
  move(distanceInMeters: number = 0) {
    console.log(`${this.name} moved ${distanceInMeters}m.`);
  }
}

class Dog extends Animal {
  bark() {
    console.log("Woof! Woof!");
  }
}

const dog = new Dog("Bobby");
dog.bark(); // Woof! Woof!
dog.move(10); // Bobby moved 10m.

泛型及使用场景: TypeScript 支持泛型,可以在定义函数、类和接口时使用泛型。泛型可以增强代码的复用性和灵活性。

例如,以下函数可以被传递任何类型的数据。

typescriptCopy Code
function identity<T>(arg: T): T {
  return arg;
}

let output1 = identity<string>("Hello World");
let output2 = identity<number>(123);

总结:TypeScript 是一种由微软开发和维护的开源编程语言,它扩展了 JavaScript,提供了更强大的类型检查和面向对象编程能力。TS 的优点包括代码更加严谨、强大的类型系统和接口能力、支持 ES6+ 中的最新特性、社区活跃度较高等,缺点则包括学习曲线陡峭、需要编译后才能运行等。在 TS 中,我们可以使用基础类型、对象类型、接口、断言等常用类型基本概念,也可以使用类、泛型等进阶用法来提高代码复用性和灵活性。