说说你对 TypeScript 的了解,它和 JS 有什么关系?
typescript 的核心特点
类型系统;TypeScript 提供静态类型系统,帮助开发者编写代码时检测类型错误,这使得代码更状态且便用调试。 编译到 javascript:TypeScript 代码在运行前会编译为标准的 javaScript,意味着它可以在所有支持 javascript 的环境中运行,包括浏览器、Nodejs 等。 ECMAScript 规范的超级:TypeScript 完全兼容所有 javscript 代码,因为它是 javascript 的一个超集,可以在 TypeScript 文件中写普通的 javascript,并逐步引入类型系统。 现代语法:TypeScript 支持 ECMAScript 的最新特性(如 async/await、装饰器、模块等),即使目标运行环境不支持这些特性,TypeScipt 也可以将其编译为兼容的 javascript。
超级关系
TypeScript 和 JavaScript 的超集,这意味着所有合法的 JavaScript 代码都是合法的 TypeScript 代码,可以把现有的 JavaScript 项目直接转换为 TypeScript 项目,只需将文件后缀改为 .ts
然后逐步添加类型。
静态类型检查
JavaScript 是一种动态类型语言,意味着变量的类型在运行时才确定,而 TypeScript 提供了静态类型检查,使得变量的类型可以在编译时检查,从而提前发现潜在的错误。
let name = 'tom' ;
name = 123 ;
let name: string = 'tom' ;
编译过程
JavaScript 是一种解析性语言,直接在运行时执行,而 Typescript 需要经过一个编译过程(通过 TypeScrit 编译器 tsc) 将 .ts 直接编译为 JavaScript。
类型推断
即使你不显示地声明类型,TypeScript 也能通过类型推断自动为变量、函数等推断出合理的类型。
let age = 25 ;
类型系统和静态检查
TypeScript 的类型系统可以帮助开发者在编译时发现潜在的错误,比如类型不匹配、函数调用错误、对像属性缺失等,而不是等到运行时才暴露这些问题,对于大型项目尤为重要。
interface User {
id: number ;
name: string ;
}
function greet ( user: User) {
console . log ( ` Hello, ${ user. name} ` ) ;
}
greet ( { id: 1 , name: 'Alice' } ) ;