TypeScript 的发展与基本语法 | 青训营笔记

73 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天

TypeScript是微软开发的一门编程语言,是JavaScript的一个超集。TypeScript扩展了JavaScript的语法,添加了一些新的遵循ES6规范的语法,具有基于类的面向对象编程的特性。

为什么是TypeScript

TypeScript发展历史

  • 2012-10: 微软发布了TypeScript第一个版本(0.8)
  • 2014-10: Angular 发布了基于TypeScript 的2.0版本
  • 2015-04: 微软发布了Visual Studio Code
  • 2016-05: @types/react发布,TypeScript可开发 React
  • 2020-09: Vue发布了3.0版本,官方支持 TypeScript
  • 2021-11: v4.5版本发布

什么是TypeScript

JavaScript

  • 动态类型
  • 弱类型语言

TypeScript

  • 静态类型
  • 弱类型语言

TypeScript优点

  • 可读性增强: 基于语法解析TSDoc,ide增强
  • 可维护性增强: 在编译阶段暴露大部分错误
  • 多人合作的大型项目中,获得更好的稳定性和开发效率
  • 包含于兼容所有JS特性,支持共存
  • 支持渐进式引入与升级

基本语法

基础数据类型

/*字符串*/
const q: string = 'string';
/*数字*/
const w: number = 1;
/*布尔值*/
const e: boolean = true;
/*null*/
const r: null = null;
/*undefined */
const t: undefined = undefined;

函数类型

function add(x: number, y: number): number {
    return x +y;
}

const mult: (x: number,y: number) => number = (x,y) => x*y;

数组类型

/*「类型+方括号」表示*/
type IArr1 = number[];
/*泛型表示*/
type IArr2 = Array<string | number [ Record<string,number>>;
/*元祖表示*/
type IArr3 = [number, number, string,stringl;
/*接口表示*/
interface IArr4 {[key: number]: any;}

泛型

/*泛型接口 & 多泛型*/
interface IX<T,U> {
    key: T;
    val: U;
}
/*泛型类*/
class IMan<T> {
    instance: T;
}
/*泛型别名*/
type ITypeArr<T> = Array<T>;

类型断言

TypeScript类型断言是一种告诉编译器你比它更清楚某个值的类型的方式。它可以用来将一个联合类型断言为其中一个类型,或者将一个父类断言为更具体的子类,或者将任何类型断言为any,或者将any断言为一个具体的类型。你可以使用as语法或者<>语法来进行类型断言。

总结

  • TypeScript增加了代码的可读性和可维护性,类型系统是最好的文档,可以帮助你快速理解函数的用法。
  • TypeScript可以在编译阶段就发现大部分错误,避免了运行时出错的风险。
  • TypeScript增强了编辑器和IDE的功能,包括代码补全、接口提示、跳转到定义、重构等,提高了开发效率。