《TypeScript 教程》发布了

作者: 阮一峰

日期: 2023年8月 8日

长话短说,我写了一本《TypeScript 教程》,已经发布在网道,欢迎大家访问。

我以前写过《JavaScript 教程》《ES6 教程》,很自然地,一直有人问,有没有《TypeScript 教程》

嗯......说实话,我一开始不想写。

我那时的想法是,TypeScript 就是为 JS 语言添加静态类型系统。如果你真需要静态类型,可以考虑使用其他更成熟的语言(比如 Rust 和 Java),再编译成 JS(wasm 模块),何必新学一门语言呢。

但是,形势比人强。TypeScript 越来越流行,成为前端开发的主流工具,各种项目纷纷移植过去。我就逐渐改变了想法,觉得还是应该上车。

2021年底,我开始动笔,没想到一写,就是断断续续一年多。

写作过程很痛苦,我低估了 TypeScript 的难度。它为了适配 JavaScript,有很多不符合直觉的规则,内容又多又杂。

加之我对很多地方不够熟悉,边写边查资料,更加拖延了写作进度。

今年3月份,我已经快写完了,TypeScript 5.0 突然发布了,装饰器(Decorators)改用全新语法。我不得不重写这一章,于是装饰器现在就有新语法旧语法两章,因为 TypeScript 同时支持这两者。

如今终于完稿,如释重负,欢迎大家多提供反馈

这个教程采用创意共享许可证,免费使用,但需要保留署名,也就是保留出处。源码放在 GitHub,大家发现任何问题,欢迎提交 Issue 和 PR。

(完)

留言(77条)

感谢老师的无私奉献,辛苦了~

阮大太强了,马上去拜读

老师真的牛,写的教程简洁明了,感谢无私奉献

nice,刚刚好要学ts,阮神的教程简直是及时雨。

阮老师也是互联网界为数不多的布道者

感谢阮大,造福大众

太强了!

马上学!!

马上就去拜读

终于等到了!!!!

太强啦,感谢阮大的无私奉献~

有实体书卖吗?想支持一下

大赞,阮大大威武

100个赞????

阮大真乃楷模

如果在网上搜索资料时有阮一峰的文章,必点进去,这就是金字招牌,是质量的保证

好用吗?

太强了,阮大

阮大大全才啊

已经学过一遍了,阮大大的ts教程得再学一遍!

大神有点晚了啊,ts都火了好多年了,早些年出这个就是我的手册了

有没有大佬转在epub,我好放在kindle上看?

感谢哟,不学好对不走阮大的辛苦付出!

太好了,又有新书读了!

阮大出品 必属精品

一定要拜读!

大佬太强了,刚刚好最近在学习和使用 ts!

我一直以为是:形势逼人强。

一定要仔细的阅读

老师,强。

功在当代,利在千秋!期待阮大出rust的教程,我觉得阮大写的教程结构清晰深入浅出容易理解。

阮一峰大佬的文章和书要好好学习, 收获很大

【如果你真需要静态类型,可以考虑使用其他更成熟的语言(比如 Rust 和 Java),再编译成 JS(wasm 模块),何必新学一门语言呢。】
【它为了适配 JavaScript,有很多不符合直觉的规则,内容又多又杂。】

老师写完教程之后,关于这2个如何看?还有必要去学么,囧。

一峰出品,必是精品

牛逼~,虽然ts我用了很久,不过相信阮大的书一定会有所收获

感谢,必须学起来~

感谢,感恩

正想学习一下typescript,辛苦了阮老师

老师的表达简单,准确。太牛了。

非常感谢阮老师

给大佬提了一个Issue和一个PR了,能有我的一份贡献,很高兴。

正准备学 这种端起碗就有饭的感觉爽死了

安得广厦千万间,大庇天下寒士俱欢颜

发现一个有隐患的写法


const arr:[number, number] = [1, 2];

function add(x:number, y:number){
// ...
}

add(...arr) // 正确
上面示例中,arr是一个拥有两个成员的元组,所以 TypeScript 能够确定...arr可以匹配函数add()的参数数量,就不会报错了。

这种写法确实不会报错 不过是有隐患的 arr定义之后是可以增删元素的。

感谢老师的创作并且无私分享

没有纸质的吗?想买

谢谢 阮大 感谢你一路无私奉献

某金过来的,点开时想着50以内可以接受,点开后翻了几章确认了不要钱???
有点惊讶。

从阮老师身上看到了学无止境!

@水云身:

确实,如果想要杜绝使用Array的splice或者pop等函数,需要添加readonly,试图使用arr.pop()就会报错

刚看了一部分,讲解得非常详细,收获很大

感谢阮老师

想学ts,想来看看阮老师有没出,不负众望,感谢

阮老师这份坚持,实在佩服

阮老师太强了,我的bash编程就是看的您的教程

太强了
想去写 vscode 的扩展
发想自己的 ts 水平太差了
过来好好强化一下

阮老师这份坚持,实在佩服

『写作过程很痛苦,我低估了 TypeScript 的难度。它为了适配 JavaScript,有很多不符合直觉的规则,内容又多又杂。』

十分同意!!!

感谢老师的无私奉献,辛苦了~

非常感谢.布道者

感谢作者的付出,同时提出我的一点批评意见(暂时只读到函数类型那一章):

行文风格偏重于对语言相关特性的介绍(是什么),而较少深究语言“设计成这样的特性相比不这样设计带来的好处”(为什么),也基本不涉及“通过案例强化印象、辅助学员吸收活用这些特性”(怎么做),有限的代码示例基本是孤立的。

因此在我看来这部书比起Tutorial更像是一本文风亲民一点的Reference。

之前看过ES6的电子版,后来买了纸质版,内容简洁明了,学习效率很高,是我喜欢的风格。
你的付出非常有意义,感谢无私的奉献!

引用屿舍的发言:

刚看了一部分,讲解得非常详细,收获很大


确实非常详细,感谢老师

阮老师永远都是阮老师,博客行文稳重,简洁。现在越来越多的技术公众号写手标题党盛行,不博眼球不罢休,这个世界需要阮老师正本清源以正视听

网道是阮老师自己维护的吗? 我看到所有教程都在上面

感谢阮老师!我这就去学!

我想问,只有我一个人不想学ts吗。。。。

感谢阮老师!佩服技术布道者!

网道打不开了!!

感谢大佬,看了你的一些文章觉得特别好,会持续关注你的文章。

阮一峰,我编程路上引路人,永远的神

阮老师要不要出版下,麻烦不?我习惯读纸质书。当年是看你的es6,看了3遍入坑vue的。受益匪浅。

正想学习一下typescript,辛苦了阮老师

辛苦阮老师,正好在学typescript

感谢阮老师

跟着官方文档学的TypeScript,,妈呀,同样地低估了TS的难度...我滴妈呀,好复杂...

在国内绝大多数业务型的公司,TS是没有人严格去写的,我敢说,绝大部分项目中都是各种any,排除面试要求,和领导的强制要求这两大因素,一线程序员写TS唯一的理由就是 它能提供友好的代码提示,这点我想大多数程序员应该承认吧。。。但是,现在已经2024年了,随着编辑器的进化,和智能的AI编辑器插件已经完全支持各种提示。我来看TS,完全是应付面试

我要发表看法

«-必填

«-必填,不公开

«-我信任你,不会填写广告链接