你真的知道 JavaScript 和 Typescript 之间的区别吗?

系统运维2025-11-05 11:44:3835493

  作者│Piumi Gunawardhana

  译者│翟珂

你真的知道 JavaScript 和 Typescript 之间的区别吗?

  JavaScript是真的知道深受大众喜欢的脚本语言。自从它诞生以来,区别它一直是真的知道网络开发的主导语言。20年后,区别微软推出了TypeScript,真的知道是区别JavaScript的超集,专为开发大型网络应用程序而设计。真的知道

  如果你对Typescript和JavaScript有所了解,区别你就会知道它们不会相互竞争。真的知道它们有一种独特的区别关系,共同发展。真的知道让我们来分析一下它们的区别优缺点,以便将来你能够更好的真的知道为项目选型。

  什么是区别JavaScript?

  JavaScript是世界上最流行的编程语言之一。

  让我们从头讲起。服务器租用真的知道自90年代以来,JavaScript一直是网络应用的核心技术。它用来与HTML和CSS结合创建交互式网页。它是一种具有动态类型和JIT(Just-in-Time)编译器的高级语言。

  JavaScript是一种多范式语言,支持各种编程风格,如函数式编程、命令式编程和事件驱动式编程。它还支持编写服务器端。JavaScript是在ECMAScript(ES)标准的基础上形成的。在JavaScript中使用最广泛的ES标准是ES5和ES6。

  什么是TypeScript?

  TypeScript (TS) 是一个 JavaScript 超集,其目标与 JavaScript 相同。

  TypeScript 是一种开源编程语言,具有许多特性,如继承、类、可见性范围、命名空间、云服务器提供商接口、合并和其他现代特性以及静态和动态类型。它支持注释、变量、函数、语句、模块和表达式。

  作为一种强类型的编程语言,TypeScript调试(在编译过程中)更容易,所以更适用于复杂应用。

  为什么会出现 TypeScript?

  JavaScript项目的复杂性呈指数级地增长。最初,JavaScript只被用作客户端语言。但开发人员慢慢意识到,它也可以作为一种服务器端的编程语言。

  尽管JavaScript有很多优点,但它在服务器端会变得混乱和复杂(特别是对于大规模的应用程序)。同时,JavaScript还会使大型复杂的应用程序难以维护。

  而浏览器不断的迭代和跨浏览器的兼容性也要求对底层的JavaScript进行改变,但继续改造JavaScript来解决这些并不实际。所以TypeScript应运而生。

  JavaScript 和 TypeScript 之间的主要区别 

JavaScript

TypeScript

支持动态网页内容

为帮助项目解决代码复杂性而创建的云南idc服务商JavaScript超集

解释性语言,因此只有在运行时才会发现错误

在编译期间可以检测和修复错误

弱类型,无法选择静态类型

强类型,支持静态和动态类型

可以直接在浏览器中使用

将代码转换为 JS 以实现浏览器兼容性

不支持模块、泛型和接口

支持模块、泛型和接口

不支持可选参数

可选参数可以添加到函数中

使用数字和字符串作为接口

数字和字符串是对象

大量社区支持,包括大量文档

社区支持正在增长,不像以前那么强大

不支持原型设计

原型设计是一个可行的选择

不需要事先的脚本知识

学习和编码需要时间,需要脚本知识

无需设置构建环境

对于静态类型定义,需要适当地构建设置(npm 包)

  TypeScript 比 JavaScript 更好吗?

  根据我的描述,TypeScript似乎只是JS的一个更好的版本。所以你可能会认为TS会在不久的将来取代JavaScript。其实不然,我仍然相信JavaScript会有用武之地。

  复杂性是一个需要考虑的关键因素。

  JavaScript 非常适合更简单的应用程序,因为它可以在所有平台(跨平台)上运行并且非常轻量级。另外,与JS的最小开销相比,编译TS代码需要的时间和CPU资源对项目而言会更麻烦。

  与JavaScript相比,TypeScript有很多好处。

  TS 使代码重构变得更加容易,并且更强调显式类型,使开发人员能够掌握各种组件的交互方式。由于它支持编译时调试,对于处理大型复杂应用程序的团队来说,有一定的好处。

  为任何项目设置TypeScript都是容易的。一些框架,如Angular,默认使用TypeScript。因此,在我看来TypeScript更胜一筹。

  TypeScript 的缺点

  尽管TypeScript有许多优点,但它也有某些缺点。

  需要准确的定义类型,在使用的时候是比较麻烦的,但从长远来看,可以节省时间和资源。这是选择JavaScript的最常用的理由。

  你不可能把一个大型的JavaScript项目迁移到严格的TypeScript上。虽然有一些工具可以协助,但你还是需要自己迁移大部分的代码。

  TypeScript代码编译需要时间和CPU资源,所以需要等待一会才能看到改变。与传统的JavaScript不同,实时编码会有一点影响。在海量代码库上,这些工具也会显着减慢,导致导航等显着延迟。

  什么时候应该将项目迁移到TypeScript?

  当代码的大小、复杂性和出错率增加时,需要在编译过程中确定具体问题时,就可以使用TypeScript。

  TypeScript 还具有接口和访问修饰符,允许开发人员在单个代码库上进行协作和交互。因此,最好在项目一开始就使用TypeScript。

  但是你如果喜欢像Ember.js或Glimmer.js这样的框架,那你就不会喜欢TypeScript,这些框架的首选是JavaScript。

  结论

  由于 TypeScript 转换为普通的 JavaScript 代码,因此你可以将其用作 JavaScript 的替代品。这就是为什么它更容易被接受。当然我们也能看到TS被集成到流行的JS框架的核心构建组件和库中,如Angular、React和Vue.js。

  就个人而言,我是TypeScript的粉丝,通常建议新项目使用它。在开始的时候多花点心思,就省得以后头疼了。

  我希望这篇文章能够帮助你更好地理解这两种脚本语言之间的差异。至少,你已经对TypeScript到底是什么有了更好的了解。现在你可以为你的下一个项目作出更明智的选择了。

  译者介绍

  翟珂,社区编辑,目前在杭州从事软件研发工作,做过电商、征信等方面的系统,享受分享知识的过程,充实自己的生活。

  原文标题:Still pretending you know the differences between JavaScript and Typescript?

​​  https://thenextweb.com/news/differences-between-javascript-and-typescript​​

本文地址:http://www.bzuk.cn/html/568c39099041.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

全站热门

HP431笔记本电脑(突破性能极限,让您畅享高效办公与娱乐)

为什么会存在乱码?什么是编解码?为什么会有这么多字符集?

阿里技术专家:架构制图方法论

后端程序员必备技术栈,消息队列的作用是什么

假如你在Debian或Ubuntu系统上经常感觉到apt-get 或 aptitude包安装速度过慢,那么这里就有几种改善这一情况的方法。你有没有考虑过改变正被使用的默认镜像站点?你有没有排除因特网连接的上游带宽成为瓶颈的可能?假如不是这些原因,你可以尝试第三个选择:使用apt-fast工具。apt-fast实际上是一个围绕apt-get和aptitude所写的shell脚本容器,它能加速包的下载速度。apt-fast本质上采用aria2下载工具,这款工具能够以“块”的方式从多个镜像并行下载一个文件(就像BitTorrent下载)。在Debian或Ubuntu上安装apt-fast下面是在基于Debian的Linux上安装apt-fast的步骤Debian复制代码代码如下: $ sudo apt-get install aria2 $ wget https://github.com/ilikenwf/apt-fast/archive/master.zip $ unzip master.zip $ cd apt-fast-master $ sudo cp apt-fast /usr/bin $ sudo cp apt-fast.conf /etc $ sudo cp ./man/apt-fast.8 /usr/share/man/man8 $ sudo gzip /usr/share/man/man8/apt-fast.8 $ sudo cp ./man/apt-fast.conf.5 /usr/share/man/man5 $ sudo gzip /usr/share/man/man5/apt-fast.conf.5Ubuntu 14.04 以及更高版本复制代码代码如下:$ sudo add-apt-repository ppa:saiarcot895/myppa $ sudo apt-get update $ sudo apt-get install apt-fastUbuntu 11.04 到 Ubuntu 13.10复制代码代码如下:$ sudo add-apt-repository ppa:apt-fast/stable $ sudo apt-get update $ sudo apt-get install apt-fast在安装期间,你需要选择一个默认的软件包管理器 (e.g., apt-get. aptitude ),还需要设置其余选项。但是你可以随时通过编辑配置文件 /etc/apt-fast/conf 来更改设置。配置 apt-get安装完成后,你需要在/etc/apt-fast.conf里配置apt-fast使用的一系列镜像。你可以在下面的URL中找到一系列Debian/Ubuntu镜像。 Debian: http://www.debian.org/mirror/list Ubuntu: https://launchpad.net/ubuntu/+archivemirrors选择完那些地理上靠近你的镜像后,你需按照下面的格式将选择的镜像加入到/etc/apt-fast.conf。复制代码代码如下: $ sudo vi /etc/apt-fast.confDebian:复制代码代码如下:MIRRORS=(http://ftp.us.debian.org/debian/,http://carroll.aset.psu.edu/pub/linux/distributions/debian/,http://debian.gtisc.gatech.edu/debian/,http://debian.lcs.mit.edu/debian/,http://mirror.cc.columbia.edu/debian/)Ubuntu/Mint:复制代码代码如下:MIRRORS=(http://us.archive.ubuntu.com/ubuntu,http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive/,http://mirror.cc.vt.edu/pub2/ubuntu/,http://mirror.umd.edu/ubuntu/,http://mirrors.mit.edu/ubuntu/)如上面所示,对于一个特定档案的个别镜像,需要用逗号分割开来。你需要在/etc/apt/sources.list的MIRRORS字符串中包含默认的镜像指定站点。使用apt-fast安装一个包现在你就可以测试apt-fast的强大了。下面是使用apt-fast的示例:复制代码代码如下:apt-fast [apt-get options and arguments] apt-fast [aptitude options and arguments] apt-fast { { install | upgrade | dist-upgrade | build-dep | download | source } [ -y | --yes | --assume-yes | --assume-no ] ... | clean }使用apt-fast安装包:复制代码代码如下:$ sudo apt-fast install texlive-full在当前目录下载软件包,但不安装:复制代码代码如下:$ sudo apt-fast download texlive-full 如前面所示,apt-fast的并行下载是通过aria2完成的。你可以看到如下图般从多个镜像并行下载。复制代码代码如下:$ sudo netstat -nap | grep aria2c 请注意,apt-fast并没有加速apt-get update。并行下载只在install, upgrade, dist-upgrage和build-dep操作中触发。其余的操作,apt-fast就会简单地回到默认的包管理器apt-get或aptitude。apt-fast有多快?为了比较apt-fast和apt-get,我尝试在两个相同的Ubuntu实例上使用两种方法安装几个软件包。下面的图表展示了所有软件包安装的时间(单位为秒)。正如你所见到的,apt-fast确实比apt-get快(e.g. 快3--4秒),特别是安装庞大软件包的时候。当然,安装性能的提高程度还依赖你上游因特网连通性。以我为例,我有富足的带宽来支持我的上游连接。这也是为什么我看到并行下载带来了成功的提高。

构建一个即时消息应用(八):Home 页面

如何把一个Python应用程序装进Docker

漫话:如何给女朋友解释为什么计算机中 0.2 + 0.1 不等于 0.3 ?

友情链接

滇ICP备2023006006号-33