TypeScript学习笔记 | 青训营

29 阅读4分钟

论笔记如何能被统计上 学习使我快乐🎉

之前就听朋友说过TypeScript,还很好奇为啥他不愿意用这玩意,还建议我如果学了Java就可以先学TS,如果先学了JavaScript再转到TS会很别扭🤔 一直没体验这个登西(没错因为我懒),这次浅浅学习了TS,那我就来BB两句

TypeScript作为JavaScript的超集,支持类和接口等面向对象的特性,TS的类和接口可以继承和关联,使得开发者可以更好地组织代码,并在编译时发现问题、提高工作效率,同时它还支持泛型和类型注释,可以帮助理解代码的含义

TypeScript VS JavaScript

联系

  1. 语法相似: TypeScript在语法设计时,其目的之一就是能够与现有的JavaScript代码无缝对接。大部分JavaScript代码不需要有太多改动就可以用作TypeScript代码
  2. 类型推断: TypeScript的类型推断功能与JavaScript的动态类型特性相似,可以在不显式注明类型的情况下编写代码,让TS自动推断变量的类型
  3. 运行环境: TypeScript代码最终会被编译成JavaScript代码,理论上来说(因为有些bug是玄学啊😇),使用TypeScript编写的代码可以在任何支持JavaScript的环境中运行(Java代码需要在Java虚拟机(JVM)上运行)

区别

  1. 类型系统: TypeScript最显著的特点之一。与JavaScript不同,TypeScript允许开发者为变量、函数参数和返回值等添加静态类型,这意味着在代码编写阶段就可以发现许多错误,避免运行时报错;而JavaScript是动态类型语言,类型在运行时被解析,导致在处理类型时的一些错误不易被察觉
  2. 类型注解: 在TypeScript中可以使用类型注解来明确变量的类型,这不仅提高了代码的可读性,还可以帮助编辑器提供更准确的代码提示和错误检查;而在JavaScript中没有这种直接的方式来定义变量的类型
  3. 编译过程: TypeScript代码需要经过编译过程👉转换为JavaScript代码,之后再在浏览器中运行代码,需要确保兼容性并解决一些语言特性的差异;JavaScript则是一种解释型语言,不需要经过显式的编译过程

TypeScript与Java的相似之处

  1. 类型系统: TypeScript引入了静态类型系统,可以为变量、函数参数和返回值等添加类型注解,这与Java中的类型声明相似
  2. 面向对象特性: TypeScript支持面向对象编程,提供类、接口、继承和多态等概念,这些都是Java中常见的概念,这也使得使用TS开发的大型项目更加结构化和可维护
  3. 编译过程: Java和TypeScript代码都需要先编译再执行,而JavaScript是解释执行的

尽管TypeScript在一些方面与Java有相似之处,但由于其主要用途是为现代前端开发提供更好的工具和开发体验,它会更贴近JavaScript的特性。TypeScript在继承JavaScript的基础上,通过引入类型系统和其他增强功能,提供了一种更可靠和高效的开发方式。

TypeScript的使用经验和总结:

  1. 可以从一些简单的类型注解开始,然后再去了解更复杂的类型系统特性,如联合类型、交叉类型等。一些更高级的特性以后再说( ̄︶ ̄)↗ 
  2. “TypeScript具有类型推断功能,明确的类型注解可以提高代码的可读性和可维护性” 👉 在需要时适当地添加类型注解,可以更好地利用TypeScript的优势
  3. 选择合适的编辑器(eg. VScode),利用丰富的代码提示、错误检查和重构功能,帮助我们更快地编写高质量的代码
  4. 当使用第三方JavaScript库时,可能需要引入类型定义文件,以便TypeScript能够正确理解库中的类型信息(网上有很多已经写好的类型定义文件,可以白嫖集成到项目中
  5. 学会处理非确定类型:尽管TypeScript的类型系统非常强大,但在某些情况下,仍然需要处理一些不确定的类型,如API返回的数据,使用联合类型、any类型等来处理这些情况,避免过于严格的类型限制