Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

typescript专题 #49

Open
into-piece opened this issue Apr 28, 2021 · 0 comments
Open

typescript专题 #49

into-piece opened this issue Apr 28, 2021 · 0 comments

Comments

@into-piece
Copy link
Owner

typescript的好处

  1. 代码可读性,对组件函数的输入输出进行类型定义,方便

typescript 的 type 和 interface 的区别

  • type 可以声明基本类型、联合类型和元组,interface 不行
  • 继承 type 和 interface 不是互斥的,可以相互继承
  • 声明函数方式不一样
  • 实现:type 也可以 implements,但是不可以通过联合类型去实现类。
    你能定义多次相同的 interface,这些定义将要合并为一个。对于类型别名就不成立,因为类型别名是独一无二的实体。
  • interface可以声明合并(多次声明, type不行

typescript原理

深入理解 TypeScript

以下演示简单说明 TypeScript 编译器如何将上述几个关键部分组合在一起:

SourceCode(源码) ~~ 扫描器 ~~> Token 流
Token 流 ~~ 解析器 ~~> AST(抽象语法树)
AST ~~ 绑定器 ~~> Symbols(符号)
符号(Symbol)是 TypeScript 语义系统的主要构造块。如上所示,符号是绑定的结果。符号将 AST 中的声明节点与相同实体的其他声明相连。

符号和 AST 是检查器用来验证源代码语义的

AST + 符号 ~~ 检查器 ~~> 类型验证
最后,需要输出 JavaScript 时:

AST + 检查器 ~~ 发射器 ~~> JavaScript 代码

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant