TypeScript入门

58 阅读1分钟

这是我参与「第四届青训营 」笔记创作活动的第15天

01、什么是TypeScript

a、TypeScript发展史

JavaScriptTypeScript
动态类型静态类型
弱类型语言弱类型语言

静态类型

  • 可读性增强:基于语法解析TSDoc,ide增强(类型提示,代码补全)
  • 可维护性增强:在编译阶段暴露大部分错误

=>多人合作的大型项目中,获得更好的稳定性和开发效率

JavaScript的超集

  • 包含兼容所有的JS特性,支持共存
  • 支持渐进式引入与升级

02、基本语法

基础数据类型

JSTS
字符串const q = 'string'const q : string = 'string';
数字const w=1const w : number = 1;
布尔值const e =true;const e: boolean = true;
nullconst r = null;const r: null = null;
underfinedconst t = underfined;const t: underfined = underfined;

对象类型

一般在ts中声明类型时,开头用以个大写的I表明这是一个类型;

函数类型

1、JS表示

2、TS表示

3、使用TS声明类型的方法

函数重载

数组类型

Typescript类型补充

Typescript泛型

泛型:不预先指定具体的类型,而在使用的时候再指定类型的一种特性

function getREpeatArr(target) {
  return new Array(100).fill(target);
}

type IGetRepeatArr = (target: any) => any[];

/*不预先指定具体的类型,而在使用的时候再指定类型的一种特性 */
type IGetRepeatArrR = <T>(target: T) => T[];

泛型不仅仅只使用在函数中,还有一下等多个场景

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

在函数中泛型在函数定义的括号的前面,在类中或泛型接口、多泛型中,都是在类型名的后面是泛型。