之前干iOS的,写过一段时间swift,所以从js转到ts对我其实影响不太大。
只是有些知识点比较乱,没有串起来过。
首先我们需要上typescript的官方文档阅读一哈文档
中文网很久没有更新了,不过github有老哥一直在翻译zhongsp/TypeScript
实际上现在看官网也有中文语言这个选项了,但是翻译完成的文章不太多,今后应该会越来越多。
那么接下来就是把知识点串起来了
以下都是个人观点,如果有不对,望大牛指点
1.要不要全局安装typescript
个人觉得不要,typescript也是有版本的,版本随着项目走,项目去安装typescript即可,完全没有必要全局安装。
2.tsc命令
安装typescript以后,就会有tsc命令了,tsc命令能做的事很多,ts转js等。
而tsc的可选项实际上是通过tsconfig传递的(当然也可以手动添加参数)
3.tsconfig文件
实际上这才是整个项目的配置精髓,遇到的大部分配置性问题,都可以在文档查到。
整个ts项目的编译和静态检测都依赖于tsconifg文件的配置。
4.ts项目写好了,d.ts文件怎么生成
开发库或者对知名库做二次封装是常见的需求,像我第一次用ts的需求就是对库做二次封装,声明文件的生成真是让我头痛。
实际上,tsconfig的配置项中添加declaration即可。写好outDir做输出路径即可。
5.有了ts还要babel吗?
tsconfig target
从文档中我们能够看到,通过设置target选项,可以将ts编译成低版本的js代码,那还要babel吗?
一般三方库都会做好低版本的编译,自己的项目又没有js的话,我个人觉得没有必要了。
因为ts编译的时候已经帮你转好了。
6.用eslint还是tslint
其实现在应该没有这个问题了,因为tslint早就被废弃了,使用eslint。
P.S:掘金的搜索能不能添加一个沸点搜索功能
之前在掘金的沸点看到过一个老哥提问,说看中文网上写的:“默认情况下null和undefined是所有类型的子类型。 就是说你可以把 null和undefined赋值给number类型的变量。”但是发布沸点的老哥表示自己尝试了一下,报错了,不知道原因为何。
1 | let aa: number = null; |
实际上文档下面标注了,strictNullChecks这个选项在文档介绍中是关闭的