这是我参与「第五届青训营 」伴学笔记创作活动的第 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的功能,包括代码补全、接口提示、跳转到定义、重构等,提高了开发效率。