ITADN
kaleidawave/ezno · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

一个快速且正确的 TypeScript 类型检查器和编译器,附带额外的实验

[!IMPORTANT] Ezno 正处于积极开发阶段,目前不支持足够的功能来检查现有项目(参见 阻塞性问题)。请查看 入门指南 以实验其 当前支持的功能

Ezno 是什么:

  • 一种可通过 CLI 使用的 JavaScript 类型检查器(LSP 也在开发中
  • 检查具有保证类型安全性的程序(无运行时 TypeErrors)(只要定义是可靠的
  • 旨在实现可靠性和追踪以改进静态分析的类型
  • 一种命令式类型系统,用于跟踪和评估函数及控制流结构的副作用。它类似于解释器,但作用于而非类型,且不执行 IO、副作用等
  • 一系列类型实验的集合。许多正在完善中,处于原型阶段。一些新行为特别有利于 JavaScript,其他则可能应用于其他语言
  • 使用 Rust 编写
  • 快速小巧
  • 开源!你可以帮助构建 Ezno!
  • 通过超越语法分析的更深入静态分析,对类型检查、优化和编译的现状提出挑战!

Ezno 不是什么

  • eNZo,Z 在 N 前面(发音为去掉 'fr' 的 'Fresno')😀
  • 与 TSC 保持同等水平或 1:1 对应,它有一些不同的行为应该能在使用 TSC 的现有项目中正常工作。你可以在这里查看与 TSC 相比的完整错误和警告对比
  • 作为服务大型代码库的手段,速度更快。首先去除冗余和复杂代码!
  • 作为允许更多动态模式的手段,更智能。保持简单!
  • 一个二进制可执行编译器。它接收 JavaScript(或 TypeScript 或 Ezno 超集),执行与传统编译器类似的过程,但最终输出 JavaScript。然而,在未来,它可能使用其事件(副作用)表示生成更低层的格式。

阅读更多关于 Ezno 的内容(按时间顺序)


本项目是一个由若干 crate 组成的工作区:

Crate代码行数包含内容
checkerchecker lines of code类型和上下文的存储、类型检查逻辑以及针对解析器 AST 的可选综合
parserparser lines of codeAST 定义、解析逻辑、AST 转字符串以及访问

帮助贡献

查看 good first issues 并在讨论中留言!欢迎就检查实现中的代码部分提问。

阅读 CONTRIBUTING.md 以获取有关构建和测试的信息。