TS 是什么?与 JS 的关系?它的特性?

答:

  • TS 是 JS 的超集,是一种静态类型检查语言,提供了类型注解,可以在代码编译阶段就检查出数据类型的错误。
  • TS 在编译阶段需要编译器编译成纯 JS 来运行,是为开发大型应用而设计的语言。
  • TS 的特性如下:
    • 类型注解:在变量、函数参数、返回值上声明类型。
    • 类型推断:基于赋值自动推断变量类型。
    • 接口(interface):定义对象的结构契约。
    • 枚举(enum):为一组数值赋予友好的名字。
    • 泛型(generics):让类型本身成为参数,复用逻辑。
    • 编译时类型检查:编译阶段就能发现类型错误,而不是运行时。

与 JS 的区别

维度JavaScriptTypeScript
类型系统动态类型,运行时检查静态类型,编译时检查
编译不需要编译(引擎直接执行)需要 tsc 编译为 JS 才能运行
学习曲线灵活,上手快需要理解类型系统
适合场景小型脚本、原型中大型应用、长期维护项目
生态库类型多为 any自带 .d.ts 或 @types/* 提供类型

补充:TS 不会取代 JS,它最终会被编译为 JS。TS 的核心价值是把运行时才能发现的类型错误前移到编译期,并提供更好的编辑器提示与重构能力。新项目建议直接用 TS,老项目可渐进式迁移。

来源整理自:vue3js.cn 面试官系列