TS | typescript与JavaScript的异同

文章目录

  • 前言
  • typescript 特点
  • javascript 进化
  • typescript 局限与解决

前言

随着前段工程化的深入,引入强类型和更多面向对象方法的typescript逐渐被更多开发者运用。
本文将介绍从以下三点介绍typescript与javascript的异同:

  1. ts相较js的特点
  2. js借鉴ts的进化
  3. ts作为js超集的局限与相应解决方法。

typescript 特点

相较于js(ES6+), ts的基础有以下几大特点:

  1. ts是js的超集,即你可以在ts中使用原生js语法。
  2. ts需要静态编译,它提供了强类型与更多面向对象的内容。
  3. ts最终仍要编译为弱类型,基于对象的原生的js,再运行。故ts相较java/C#这样天生面向对象语言是有区别和局限的
  4. ts是由微软牵头主导的,其语法风格与概念主要来自C#

javascript 进化

因为ECMA标准的进化,很多ts的专属特性已在原生js中落地,其中包括但不限于:

  1. let/const 基于块级作用域的变量声明
  2. lambda(箭头函数)
  3. class 类

所以,除强类型与泛型等从C#引入的面向对象特性,js与ts的差异已基本被抹平。

typescript 局限与解决

ts是js的超集,这意味着你在ts中写js是完全兼容的,这降低了ts的学习和使用门槛,保留了灵活性,但同时,ts的纯洁性无法保证
程序是否加入类型声明,是否使用面向对象完全取决于开发者本身,而这种过分的宽容很不利于团队合作的复杂长周期开发。
如果不对ts项目进行严格的代码规范,那么使用ts非但不能提高项目的安全性和严谨性,反而会给自己挖很多坑。

所以,建议ts项目采用团队统一的tslint
当然,如果希望使用真正的静态,类定义,面向对象的web开发语言,可以考虑放弃typescript,转投dart了。

你可能感兴趣的:(TS,js超集,强类型,基于类)