AiOffice 能力组合,开箱即用,为您的工作流提速
对象字面量得到特殊对待:TypeScript 标记未知属性。
有些变量以宽泛类型开始,随着 TypeScript 看到的值的添加而变窄。
您的编辑器是您最好的 TypeScript 学习工具。
TypeScript 包括枚举和命名空间等特定于 TypeScript 且 JavaScript 中不存在的功能。尽可能选择标准 ECMAScript 功能 - 它们更可移植,可以更好地被 JavaScript 生态系统理解,并且不会将您锁定在 TypeScript 特定的模式中。
类型名称应该传达含义,而不是结构。
不要使用 -1、0 或“”作为特殊值。使用 null 或不同的类型。
当 TypeScript 无法推断泛型类型时,请创建新的推断机会。
在一条语句中构建对象,而不是逐个构建对象。
默认情况下,TypeScript 中的条件类型分布在联合上。这通常是您想要的,但有时它会导致令人惊讶的行为。了解如何控制分发(在不需要时阻止它并在需要时启用它)对于高级类型级编程至关重要。
如果您创建别名,请一致使用它。
有时,最好的类型级代码就是根本没有类型级代码。当类型变得极其复杂时,当它们镜像外部模式(API、数据库、协议)时,或者当它们需要与不断变化的外部源保持同步时,代码生成通常是比复杂的类型级编程更好的解决方案。
TypeScript 编译和类型检查是单独的过程。
当库使用特定的 this 上下文调用用户提供的回调时,该上下文是 API 的一部分。 TypeScript 允许您将其键入为函数的第一个参数,即使它不是真正的参数。这记录并强制执行预期的上下文。
使用小写原始类型,切勿使用大写包装类型。
“泛型黄金法则”规定类型参数应该在函数签名中出现两次或多次。如果类型参数仅出现一次,则它与任何内容无关并且可能是不必要的。不必要的类型参数会产生类型安全的错误感觉,并且可能导致推理不太成功。
JavaScript 对象键始终是字符串,即使对于数组也是如此。
不要从单个示例推断类型。
优先选择 async/await 而不是回调,以获得更清晰的代码和更好的类型流。
将大型 JavaScript 代码库迁移到 TypeScript 并不一定是全有或全无。 allowJs 编译器选项可让您通过在同一项目中混合 .ts 和 .js 文件来逐步采用 TypeScript。这使得增量迁移成为可能,允许团队一次转换一个文件,同时维护工作代码库。
您的 TypeScript 环境包括全局变量、环境变量和特定于平台的 API。使用声明文件 (.d.ts) 为您的环境创建准确的类型定义。这确保了特定于平台的代码和全局变量的类型安全。