TypeScript 基础(01)

452 阅读6分钟

这是我参与8月更文挑战的第5天,活动详情查看:8月更文挑战

什么是TypeScript

什么是TypeScript

TypeScript是微软公司开发的开源编程语言。它本质上是在JavaScript语言中添加了可选的静态类型和基于类的面向对象编程等新特征。

TypeScript发展至今,已经成为很多大型项目的标配,其提供的静态类型系统,大大增强了代码的可读性及可维护性;同时,它提供最新的和不断发展的JavaScript特性,能让我们构建更健壮的组件。

TypeScript是JavaScript的超集,专门为开发大规模可扩展的应用程序而设计,且可编译为原生JavaScript的一种静态类型语言。更确切地说,TypeScript是ECMAScript 2015(ES6)的超集。

TypeScript从命名上可以看出是由Type和Script组成的,其中Type表示是一种类型语言,可以进行静态类型检查,Script表示是兼容JavaScript的脚本语言。

TypeScript和JavaScript 的关系图

一般来说,TypeScript需要编译成JavaScript才能运行。

TypeScript 的特点:

  • TypeScript以JavaScript为基础

    • TypeScript是JavaScript的超集,意味着合法的JavaScript代码(也有少数例外)可以直接保存成扩展名为.ts的文件,即可用TypeScript编译器进行编译并运行。
  • TypeScript支持第三方JavaScript库

    • 由于TypeScript在编译后就转成原生的JavaScript代码,因此第三方JavaScript框架或工具可以很方便地在TypeScript代码中进行引用。
  • TypeScript是可移植的

    • TypeScript是可以跨浏览器、设备和操作系统进行移植的,即“一处编写,多处运行”。它可以在JavaScript的任何环境中运行,而且可以用ES6的语法来编写代码,通过配置生成ES5版本(或其他版本)JavaScript代码。
  • TypeScript是静态类型语言

    • TypeScript是静态类型语言,可以在代码编辑阶段进行类型检查,及时发现语法等错误,以提高代码的稳定性

TypeScript 的类型系统

为什么要给JavaScript加上类型?

  • 类型系统能够提高代码的质量和可维护性。

    • 类型有利于代码的重构,它有利于编译器在编译时而不是运行时捕获错误
    • 类型是出色的文档形式之一,函数签名是一个定理,而函数体是具体的实现
  • JavaScript 即TypeScript

    • TypeScript 为JavaScript 提供了编译时的类型安全。
    • 由TypeScript的名字就可以看出,这种做法并不奇怪。最棒的是这些类型是完全可选的。写在.js文件里的JavaScript代码,可以被重新命名为.ts文件,TypeScript仍然会返回与原始JavaScript文件相同的.js文件。被设计成JavaScript的“超集”,并且带有可选的类型系统,TypeScript是经过慎重考虑并有意这样做的。
  • 类型可以是隐式的

    • TypeScript 将尽可能多地去推断类型信息,以便在代码开发过程中以极小的成本为你提供类型安全。
  • 类型可以是显式的

    • 正如之前所提到的,TypeScript 会尽可能安全地推断类型。然而,你可以使用类型注解来做下面的事情。
    • 帮助编译器,更重要的是为下一个必须阅读代码的开发人员记录内容
    • 强制编译器编译你认为应该去编译的内容,这可以让编译器对代码所做的算法分析与你对代码的理解相匹配。
  • 类型是结构化的(鸭子类型)

  • 类型错误不会阻止JavaScript的正常运行

    • 为了方便把JavaScript代码迁移到TypeScript,即使存在编译错误,在默认情况下,TypeScript代码也会尽可能地被编译为JavaScript代码
  • 类型可以由环境来定义

为什么要学习TypeScript

TypeScript是一门静态类型语言,本身具有静态类型检查的功能,很好地弥补了JavaScript在静态类型检查上的不足。

TypeScript非常适合开发大规模可扩展的JavaScript应用程序。这也是我们要学习TypeScript的主要原因。换句话说,学习TypeScript可以让开发和维护大规模可扩展的JavaScript应用程序以满足目前日益复杂的Web应用对JavaScript的要求。

TypeScript与JavaScript对比有什么优势

JavaScript是一种脚本语言,无须编译,基于对象和事件驱动,只要嵌入HTML代码中,就能由浏览器逐行加载解释执行,JavaScript的语法虽然简单,但是比较难以掌握,使用的变量为弱类型,比较灵活。

TypeScript是微软开发和维护的一种具有面向对象功能的编程语言,是JavaScript的超集,可以载入JavaScript代码运行,并扩展了JavaScript的语法。TypeScript增加了静态类型、类、模块、接口和类型注解等特征。

TypeScript与JavaScript相比,主要具有以下优势:

  • 编译时检查 TypeScript是静态类型的语言,静态类型可以让开发工具(编译器)在编码阶段(编译阶段)即时检测各类语法错误。对于任何一门语言来说,利用开发工具即时发现并提示修复错误是当今开发团队的迫切需求。有了这项功能后,就会让开发人员编写出更加健壮的代码,同时也提高了代码的可读性。
  • 面向对象特征 面向对象编程可以更好地构建大规模应用程序,通过对现实问题合理的抽象,可以利用面向对象特征中的接口、类等来构建可复用、易扩展的大型应用程序。TypeScript支持面向对象功能,可以更好地构建大型JavaScript应用程序。
  • 更好的协作 当开发大型项目时,会有许多开发人员参与,此时分模块开发尤其重要。TypeScript支持分模块开发,这样可以更好地进行分工协作,最后在合并的时候解决命名冲突等问题,这对于团队协作来说是至关重要的。
  • 更强的生产力 TypeScript遵循ES6规范,可以让代码编辑器(IDE)实现代码智能提示,代码自动完成和代码重构等操作,这些功能有助于提高开发人员的工作效率。

TypeScript给前端开发带来的好处

  • 提高编码效率和代码质量
  • 增加了代码的可读性和可维护性
  • 胜任大规模应用开发
  • 使用最先进的JavaScript语法