> For the complete documentation index, see [llms.txt](https://yitinggu.gitbook.io/ts/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yitinggu.gitbook.io/ts/ts-quan-jie/69.md).

# 69. TypeScript的运行与调试

类型体操 [仓库地址](https://github.com/type-challenges/type-challenges)

any能不用就别用

### **如何学习TypeScript？**

* 看思路
* 敲代码
* 记重点

**Example：**

范型解决了什么问题？

范型没有解决什么问题？

范型的优点是什么？

范型的缺点是什么？

每节课都要去写一篇博客来总结

### **几个工具**

Vite（替代Webpack）

Go

Rust（SWC）

Deno - Nodejs之父的新作品，Rust+V8，名字就是把node中的no移到末尾。

### **什么叫做类型擦除？**

TS => JS 的过程就叫类型擦除。

![截屏2023-05-27 下午9.45.42](https://raw.githubusercontent.com/clairyitinggu/images/main/img202305272145120.png)

**有哪些擦除类型的工具**

esbuild，swc，tsc，babel

esbuild和swc比较快，原因是不检查语法，而tsc和babel慢的原因是要检查语法。

**如何知道浏览器支持了哪些ES6的标准？**

查看这里 [ES6 Compatibility table](https://kangax.github.io/compat-table/es6/)

![截屏2023-05-27 下午9.46.03](https://raw.githubusercontent.com/clairyitinggu/images/main/imgimg202305272146147.png)

### 如何运行TypeScript

**有哪些现成的可以运行TypeScript的playground？**

<https://playcode.io/>

<https://stackblitz.com/>(有Vite)

<https://codesandbox.io/>

**本地编辑+浏览器**

推荐用Vite

**本地编辑 + Node**

ts-node，swc-node，esbuild-kit/esm-loader，esno

⚠️esm是es6的一种语法

### **如何调试TS？**

TS的调试用鼠标悬浮即可，在TS里面打console.log是没用的，因为ts最后会被编译为js

### **方方推荐的学习TypeScript的三本书**

《编程与类型系统》

《TypeScript编程》 =〉适合初学者

《类型与程序设计语言》 简称TAPL，讲的很底层，属于天花板级别的书

### **回顾**

什么是类型擦除？

如何将TS转为JS？

如何直接运行TS？

如何调试TS？

### **Q\&A解答**

类型体操的本质是函数式编程，特点就是一旦声明就无法修改。

函数式编程看看就好，不如多花时间背背题目过面试。

这里有一篇方方写的关于函数式编程的文章。

[写给前端工程师看的函数式编程对话 - 1](https://juejin.cn/post/6938266566463062052)

`?`的意思是某个东西是否存在
