# max-typescript **Repository Path**: max-lu/max-typescript ## Basic Information - **Project Name**: max-typescript - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-15 - **Last Updated**: 2022-09-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: TypeScript ## README ### 基于node的typescript学习 ##### 创建流程 1.新建目录 2.进入目录,执行npm init -y 3.npm i typescript ts-node-dev tslint @types/node -D 4.在package.json文件中加入 ```json "scripts": { "start": "ts-node-dev ./src/index.ts -P tsconfig.json --no-cache", "build": "tsc -P tsconfig.json && node ./dist/index.js", "tslint": "tslint --fix -p tsconfig.json" }, ``` 5.创建tsconfig.json文件,并输入配置 6.创建src/index.ts开始编码 ##### 参考地址 1.https://www.tslang.cn/docs/handbook/basic-types.html 2.https://juejin.cn/post/6994102811218673700 3.https://www.typescriptlang.org/docs/handbook/2/conditional-types.html 重点看这个 #### 知识点 1.unknown和any的区别 unknown:当前状态未知,等待推导 any:去掉类型推断 2.any和never的区别 any:除never,所有类型都继承自any。表示一个全集 never:什么都不表示,一个纯占位符;如果一个Obj的key是never(可以通过三元判断),那么就会过滤掉这个不存在的key 3.Union是什么 ``` type TempType = "1" | "2"; // 这个就是Union,很常用 ``` 4.infer又是什么? 是一个当前未知,需要未来推导的类型。infer FeatureType 定义了一个未来类型推倒为FeatureType的类型 5.一些关键词 keyof:获取obj的key的 typeof:获取js的类型推断;js => ts in:是枚举 Union用的。如果想要枚举Obj的key。可以:Key in keyof Obj as:键值映射,可以用来修改Obj的key值 6.Object和Array的遍历比较 Object: keyof T Array: T[number] 7.获取到Array数组的长度 T extends any[] T["length"] 8.实现Exclude方法 type MyExclude = T extends U ? never : T; Union会排列组合(展开)吧?不是很理解