我的GitHub
0%

无星的前端之旅(十七)-typescript初探

之前干iOS的,写过一段时间swift,所以从js转到ts对我其实影响不太大。

只是有些知识点比较乱,没有串起来过。

首先我们需要上typescript的官方文档阅读一哈文档

中文网很久没有更新了,不过github有老哥一直在翻译zhongsp/TypeScript

实际上现在看官网也有中文语言这个选项了,但是翻译完成的文章不太多,今后应该会越来越多。

那么接下来就是把知识点串起来了

以下都是个人观点,如果有不对,望大牛指点

1.要不要全局安装typescript

个人觉得不要,typescript也是有版本的,版本随着项目走,项目去安装typescript即可,完全没有必要全局安装。

2.tsc命令

tsc options

安装typescript以后,就会有tsc命令了,tsc命令能做的事很多,ts转js等。

而tsc的可选项实际上是通过tsconfig传递的(当然也可以手动添加参数)

3.tsconfig文件

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这个选项在文档介绍中是关闭的

我是阿星,阿星的阿,阿星的星!