JavaScript 篇幅略多 ★★★
读完时间:2020 年 8 月 20 日
出版时间:2020 年 1 月
1.2 选择 TypeScript 的理由
TypeScript 提供了一个浮动的标准来衡量你希望在声明中投入多少努力;投入的越多,你获得的类型安全和代码智能提示就越多。
在默认情况下,TypeScript 要求(正如良好的 JavaScript 代码所要求的一样)在使用变量(即在某处使用 var
)之前先进行声明。一个快速的修复方法是,你可以告诉 TypeScript,这里确实存在被叫作 $
的变量。
declare var $: any; $(".awesome").show();
2.3 null
和 undefined
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 的项目,它遵循约定从提交消息中生成变更日志。