- 官方handbook- 速览
-
TypeScript Deep Dive
- utility-types Partial Pick ThisType
TypeScript Playground
TypeScript 官方提供的在线 TypeScript 运行环境,利用它你可以方便地学习 TypeScript 相关知识与不同版本的功能特性。
TypeScript UML Playground
一款在线 TypeScript UML 工具,利用它你可以为指定的 TypeScript 代码生成 UML 类图
JSON TO TS
一款 TypeScript 在线工具,利用它你可以为指定的 JSON 数据生成对应的 TypeScript 接口定义。
Schemats
利用 Schemats,你可以基于(Postgres,MySQL)SQL 数据库中的 schema 自动生成 TypeScript 接口定义。
TypeScript AST Viewer
一款 TypeScript AST 在线工具,利用它你可以查看指定 TypeScript 代码对应的 AST(Abstract Syntax Tree)抽象语法树。
TypeDoc
TypeDoc 用于将 TypeScript 源代码中的注释转换为 HTML 文档或 JSON 模型。它可灵活扩展,并支持多种配置。
Notice
Never TypeScript中的never类型具体有什么用? - 尤雨溪的回答 - 知乎=>如同TDD,如果修改了联合类型,编译时检测,保证不会遗漏对新增类型的处理。
-
断言 我明确告诉编译器这个地方的检查我来管,让编译器闭嘴。(实际上应该有更好的方式避免编译器报错,临时处理一下
<window as any>
)- 形式:
as
<>
- 类型:非空断言
let obj = a!
;确定断言x !: number
- 形式:
-
类型守卫 type-guards
- 用户定义类型守卫:比如常用的
lodash
库就有isArray
、isNumber
函数,但是只使用这个函数本身,编译器无法提示真值之后的作用域内变量类型,使用用户定义类型守卫能够使提示起作用
- 用户定义类型守卫:比如常用的
装饰器到底是语法上的特性还是设计上的模式?两者是否有区别?是什么?
常见问题
window 添加属性