TS学习笔记 | 青训营笔记

106 阅读2分钟

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

今天跟着字节的课程学习了TypeScript的基础内容

一、本堂课重点内容:

提示:有Java基础或后端基础的同学使用TS能更快上手

1.TS的发展史

  • 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 版本,官方支持 TypeScript2021-11: v4.5版本发布
  • 2021-11: v4.5版本发布

2.基础数据类型

image-20230119153245665

3.函数重载

 /* 对getDate函数进行重载,timestamp为可缺省参数 */
 function getDate(type:string',timestamp?: string): string;
 interface IGetDate {
     (type: 'string',timestamp?: string): string;
     (type: 'date',timestamp?: string): Date;
     (type: 'string''date', timestamp?: string): Date  string;
 }
 /* 不能将类型“(type: any,timestamp: any) => string  Date"分配给类型“IGetDate”
    不能将类型“stringDate”分配给类型“string”。
    不能将类型“Date”分配给类型“string”。ts(2322) */
 const getDate2: IGetDate = (type,timestamp) => {
     const date = new Date(timestamp);
     return type === 'string' ? date.toLocaleString() : date;
 }

4.Typescript补充类型

 /* 空类型,表示无赋值 */
 type IEmptyFunction = () => void;
 /* 任意类型,是所有类型的子类型 */
 type IAnyType = any;/* 枚举类型:支持枚举值到枚举名的正、反向映射 */
 enum EnumExample {
 add ='+
 mult ='*
 }
 EnumExample['add'] === '+';
 EnumExample['+']=== 'add' ;
 enum ECorlor { Mon, Tue, Wed, Thu, Fri, Sat, Sun };
 ECorlor['Mon'] === 0;
 ECorlor[0]==='Mon';
 type INumArr = Array<number>;

5.泛型

image-20230119162927546

6.类型别名&类型断言

 /* 通过type关键字定义了IObjArr的别名类型 */
 type IObjArr = Array<{
     key: string;
     [objKey: string]: any;
 }>
 function keyBy<T extends IObjArr>(objArr: Array<T>) {
     /* 未指定类型时,result类型为 {} */
     const result = objArr.reduce((res, val, key) => {
         res[key] = val;
         return res;
     },{});
     /* 通过as关键字,断言result类型为正确类型 */
     return result as Record<string,T>;
 }

7.高级类型

1.联合类型/交叉类型

image-20230119171133367

二、课后个人总结:

TypeScript,简称 ts,是微软开发的一种静态的编程语言,它是 JavaScript 的超集。 对TS的个人理解:

  1. js 有的 ts 都有,所有js 代码都可以在 ts 里面运行。
  2. ts 支持类型支持,ts = type +JavaScript。

三、首次使用TS

1.下载一个全局的包

 npm i  -g  typescript
 或者
 yarn  global add  typescript 

2.打开 vscode, 新建一个 .ts文件。如 hello.ts

接下来书写 ts 的代码

新建文件,如 hello.ts。(ts文件的后缀名都是 .ts)书写代码

编译代码:在终端输入 tsc ./hello.ts, 会自动生成一个js 文件,接下来就可以用 node 命名来运行js 的文件