ECMAScript(ES) 和 TypeScript(TS) 的关系可以简单理解为:
TypeScript 是 ECMAScript 的超集(superset),在 JavaScript(基于 ECMAScript)基础上增加了类型系统和其他特性。
下面从多个维度对比它们的区别:
| 项目 | ECMAScript | TypeScript |
|---|---|---|
| 是什么 | 脚本语言标准(JavaScript 的语言规范) | 基于 JavaScript 的语言(编译型) |
| 是否可直接运行 | ✅(浏览器/Node 直接执行 JS) | ❌(必须编译成 JS 后运行) |
| 类型系统 | 动态类型 | 静态类型(可选) |
let a = 1;
a = "hello"; // 合法
let a: number = 1;
a = "hello"; // ❌ 编译报错
tsc 编译为 JavaScripttsc index.ts -> index.js
TypeScript 在 ES 基础上增加了:
string, number, interface)public, private, protected)这些 不是 ECMAScript 标准的一部分。
{
"target": "ES2017"
}
| 场景 | 推荐 |
|---|---|
| 小型脚本、快速原型 | JavaScript |
| 大型项目、团队协作 | TypeScript |
| 前端框架(React/Vue/Angular) | TS 越来越主流 |
| 浏览器直接运行 | JS |
ECMAScript 是 JavaScript 的“标准语言规范”,TypeScript 是“带类型的 JavaScript”,需要编译后运行。
如果你愿意,我也可以从 学习路线、面试角度 或 代码示例对比 再展开讲。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。