读书笔记:《深入理解TypeScript》 - [澳]Basarat Ali Syed 著 / 郭文超 何小磊 柳星 徐野 译

JavaScript 篇幅略多 ★★★

读完时间:2020 年 8 月 20 日

出版时间:2020 年 1 月

1.2 选择 TypeScript 的理由

TypeScript 提供了一个浮动的标准来衡量你希望在声明中投入多少努力;投入的越多,你获得的类型安全和代码智能提示就越多。

在默认情况下,TypeScript 要求(正如良好的 JavaScript 代码所要求的一样)在使用变量(即在某处使用 var)之前先进行声明。一个快速的修复方法是,你可以告诉 TypeScript,这里确实存在被叫作 $ 的变量。

declare var $: any;
$(".awesome").show();

2.3 nullundefined

JSON 标准支持编码 null,但是不支持 undefined。当JSON 编码具有 null 属性的对象时,这个属性将会包含 null 值;然而当一个属性 undefined 时,在编码后,它就会被删除。

6.2 迁移 JavaScript 代码至 TypeScript

你可以将你的 JavaScript 代码改成 TypeScript 代码,但是你不能让整个世界都使用 TypeScript。这正是 TypeScript 环境声明所支持的地方。我建议你以创建一个 vendor.d.ts 文件作为开始(.d.ts 文件扩展名指定这个文件是一个声明文件),然后向文件里添加东西。或者,你也可以创建一个针对特定库的声明文件,如为 jQuery 创建 jquery.d.ts 文件。

在 TypeScript 中,可以允许你导入任何文件,例如 .css 文件。如果你使用的是 webpack 样式加载器或 CSS 模块的话,你只需要在 globals.d.ts 中添加如下代码即可。

declare module '*.css';

现在你可以使用 import * as foo from './some/file.css' 语句了。

6.15 泛型

设计泛型的关键动机是在成员之间提供有意义的类型约束,这些成员可以是类的实例成员、类的方法、函数的参数、函数返回值。

10.6 Changelog

读取带有项目进度的 Markdown 文件比读取提交的日志更容易。
从提交的信息中自动生成或变更日志是一种被广泛使用的方式。这里有一个被称为 Conventional-Changelog 的项目,它遵循约定从提交消息中生成变更日志。

发表评论

您的电子邮箱地址不会被公开。