我的编程空间,编程开发者的网络收藏夹
学习永远不晚

什么是Typescript以及其优缺点是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

什么是Typescript以及其优缺点是什么

什么是Typescript以及其优缺点是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

JavaScript可能是现代网络的事实上的语言,但长期以来,它也是我选择脚本编写的语言。  使用Python进行编码很有趣,但是如果我有一些自动化的东西,我会去用node。 我选择的服务器端语言曾经是C#,但如今它虽然功能强大,但感觉却很笨拙。  我曾经天真的将Node描述为"泛滥成灾",它满足了我编写的所有内容的需求。  我甚至可以用多种不同的方式用JavaScript编写Android和iOS应用程序。

并不是说它是适用于一切的完美工具,但是多年来我一直为我服务。 我一直在讽刺地承认在家庭主力马网上出现的缺陷,包括加里·伯恩哈特(Gary  Bernhardt)嘲讽的" Wat?"。 闪电般的谈话让我仍在思考。 如果您以前从未看过它,请立即停止阅读并继续观看。 您可以稍后感谢我。

闪电般的谈话已成为我推荐给前端开发人员的推荐阅读清单(查看清单还是消耗清单?)的一部分,还有乔纳森·克里默的" 23世纪JavaScript架构"。  

什么是Typescript?

我假设您听说过Typescript,但如果没有,请尝试总结一下:Typescript是强类型的Javascript。  它添加了您期望强类型语言的功能,并且需要一个编译步骤(从技术上来说是"翻译")才能将Typescript转换为JavaScript。  这是因为浏览器不了解Typescript。 从技术上讲,Typescript不会添加任何新的运行时功能,而是为开发人员添加功能。

我听说有人形容Typescript是喜欢它还是讨厌它,但是我还没有和任何尝试过并讨厌它的人交谈。  我已经与许多犹豫不决的人进行了交谈-大约在2016年中,我就是其中之一。 但是,我听到的同行对Typescript的最严厉批评是,这是一种额外的学习工具。  不仅是语言,而且还有构建过程。  但是,大多数现代的Web应用程序在其构建链中至少有一个链接以Babel的形式保留给JavaScript,Babel是一种允许较新的JavaScript在较旧的浏览器上运行的工具。  将TypeScript添加到该管道中不应该是火箭科学,尤其是因为Babel自v7起就支持Typescript编译。

它不应该是火箭科学,但有时会有这种感觉,这就是Typescript新手有时会挣扎并回到浏览器中运行的JavaScript受欢迎的原因之一。

好处

但是正如我所说,我从未听过有人采用Typescript并为此感到后悔。 好处远胜于困难,尤其是在使用Angular CLI或Create React  App的时代-两者都使您可以在几分钟之内开始使用启用了Typescript的新项目。

我假设您知道这些好处是什么,但是如果您不知道,请允许我总结一下:

  • Typescript的编译步骤意味着您可以及早发现问题,而不必等待运行时失败。

  • 您的IDE现在可以在编译步骤更早的时候提示您。 想象一下,当您引用一个不存在的变量或使用错误的参数调用函数时,您的IDE会告诉您! 真正的革命!  (当然,因为"真正的"编程语言已经享受了多年,所以我一直在调侃。)编辑:我对此强调不够。  我最近将一个旧项目从JavaScript转换为Typescript,以了解我从别人那里继承来的代码库的复杂性。  这是一个循序渐进的过程,在此期间,团队继续提供新功能,但是我们遇到了一些示例代码,这些示例中我们错误地使用了第三方库。  也许API发生了更改,或者有人误读了文档,但是我们传递了某些配置变量,这些变量绝对没有任何作用。 Typescript立即告诉我们,我们删除了有问题的代码。  显然,它是不需要的,并且非常容易误导。

  • 当ECMAScript(驱动JavaScript的标准)中提出新功能时,TypeScript可以尽早采用它们,从而使您始终处于最前沿。

但实际上,主要好处是Typescript使您的代码能够以JavaScript无法做到的方式进行自我描述。  当我是项目的唯一开发人员时,JavaScript并不是很糟糕,因为我可以将所有事情都牢记在心,并且我拥有完美的记忆,对吗? 错误。  即使是唯一的开发人员,我编写的代码也容易失忆。 如今,当我编写普通的JavaScript时,我讨厌不得不去阅读函数定义以弄清楚如何使用它。  我不知道它返回什么(如果有的话)或它接受什么样的参数。 我可能知道参数的数量及其名称,但这并不总是足够的:

function doTheThing() {  let error = false;    // About a million lines of code that might cause an error    return error;}function consumeTheThing() {  let error = doTheThing();  if (error) {    // What do I do with the error now?  }}

这就是我的意思。 "错误"是布尔值吗? 当我看到第2行时,它看起来肯定是这样,但是那到" doTheThing"末尾之间的一百万行代码又如何呢?  它可以是字符串,对象或知道什么的人。

您可能会说这种灵活性是一种资产。 可能是这样,但更常见的是它是一个陷阱,诱使您采用简单的方式,这会在您和您的同伴之间引起许多微小的挫败感。  曾经在别人的代码中间,觉得自己在迷宫中吗? 那就是别人的代码。 您可以用JavaScript编写"好的"代码,但是很少有人鼓励您这样做。

这就是TypeScript的美。 这并不会迫使您成为一名优秀的开发人员。 但这为您提供了实现此目标的工具。

缺点

有缺点吗? 当然有。

  • 从字义上来说,更多的打字。 您可以更快地穿破键盘(对于使用蝶形键盘的人来说,这可能是个问题)。  没什么大不了的,但是一些JavaScript开发人员讨厌必须用每个新函数或变量写出类型。  您不必这样做,但是如果您不使用类型,为什么要使用Typescript?

  • 由于您必须编译代码,因此每次更新和每次测试运行都将花费一点时间。 但是,我们正在谈论几秒钟。  我使用Typescript节省的时间远远超过了编译它所花费的时间

  • 有时,构建项目的复杂性可能是一个真正的痛苦。 这是真实的-如果您不熟悉构建工具,则设置新项目可能会令人沮丧。  在短期内,我的建议是找到一个入门项目以助您一臂之力—如果您正考虑使用那些框架,那么上述Angular CLI和Create React App在这方面非常有用。  长期? 花时间学习工具-tsc,Babel,WebPack和所有这些好东西。 如果您使用的是节点,请尝试ts-node。  如果您使用的是Mocha,请尝试ts-mocha。 有一些简单的捷径可以帮助您入门。

有点像是我的观点是单方面的-我并没有在缺点和优点上投入太多精力  我想,出于同样的原因,我不会花很多时间在每顿饭上都吃麦当劳的好处-这样做的好处有限(不必再做饭了……我想就是这样)。

未来

我认为Typescript不会在短期内取代JavaScript-了解后者对于使前者发挥作用至关重要。  而且我们不会看到Typescript在任何浏览器中本机运行。 它是一个预处理器,就像之前的CoffeeScript一样。  Typescript和Coffescript之间的区别在于后者是对其所基于语言的根本改变。 Typescript是自然的演变。  这不仅使学习变得更容易,而且使将JavaScript项目转换为Typescript的过程更加繁琐。 首先将* .js重命名为* .ts。  现在,您有了Typescript项目! 然后,您可以一次开始采用语言功能。 我不能保证这会很容易,但是它将告诉您有关JavaScript从未有过的事情。  当您开始下一个项目时,Typescript编译器将等待

看完上述内容,你们掌握什么是Typescript以及其优缺点是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网行业资讯频道,感谢各位的阅读!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

什么是Typescript以及其优缺点是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

什么是Typescript以及其优缺点是什么

什么是Typescript以及其优缺点是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。JavaScript可能是现代网络的事实上的语言,但长期以来,它也是我选择脚本编写的语
2023-06-16

抗ddos以及其优势是什么

本篇文章给大家分享的是有关抗ddos以及其优势是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。什么是抗ddos呢?字面意识就是抗击ddos攻击帮助网站不停的调整和变化的功能
2023-06-07

PHP和Node.js区别以及各自的优缺点是什么

这期内容当中小编将会给大家带来有关PHP和Node.js区别以及各自的优缺点是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。网络正在处于一个日新月异的发展时代。服务器端开发人员在选择语言的时候非常困惑
2023-06-17

C#的优缺点是什么

这篇文章主要介绍了C#的优缺点是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#的优缺点是什么文章都会有所收获,下面我们一起来看看吧。什么是 C#?C# 是一个现代的、通用的、面向对象的编程语言,它是由微
2023-06-27

Less的优缺点是什么

这篇文章主要介绍Less的优缺点是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是Less?Less是一种CSS的扩展和动态样式表语言,CSS预处理器,可以在客户端或服务器端运行,帮助我们自定义,管理和重用网
2023-06-27

HTTPS的优缺点是什么

这篇文章将为大家详细讲解有关HTTPS的优缺点是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。HTTPS的优缺点是什么?现在有很多人在进行网站搭建时会考虑网站要不要加HTTPS,这是因为
2023-06-07

React的优缺点是什么

这篇文章主要介绍“React的优缺点是什么”,在日常操作中,相信很多人在React的优缺点是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”React的优缺点是什么”的疑惑有所帮助!接下来,请跟着小编一起来
2023-06-05

mysqlinstaller的优缺点是什么

MySQL Installer 是一个用于安装和管理 MySQL 的官方工具,其优点和缺点如下:优点:用户友好:MySQL Installer 提供了一个简单易用的图形界面,使得用户能够轻松进行安装和配置 MySQL,即使是对于初学者也很
mysqlinstaller的优缺点是什么
2024-04-09

sqlfront的优缺点是什么

SQLFront是一个用于管理和编辑数据库的工具,它有一些优点和缺点:优点:用户界面友好:SQLFront提供了一个直观的用户界面,使得用户可以轻松地管理和编辑数据库。支持多种数据库:SQLFront支持多种数据库系统,包括MySQL、
sqlfront的优缺点是什么
2024-05-21

maven优缺点及使用方法是什么

本篇内容主要讲解“maven优缺点及使用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“maven优缺点及使用方法是什么”吧!1.什么是maven:maven是Java平台下的一款项目构
2023-07-05

prometheus的优点和缺点是什么

Prometheus 的优点包括:高度可扩展性:Prometheus 是一个高度可扩展的监控系统,可以轻松地添加更多的监控对象和指标。灵活性:Prometheus 提供了丰富的查询语言和灵活的数据模型,可以根据需要进行自定义监控。易于部
prometheus的优点和缺点是什么
2024-03-05

​Cassandra的优点和缺点是什么

Cassandra的优点:高可用性:分布式架构,无单点故障。可扩展性:可水平扩展,提高性能。低延迟:无模式架构,减少开销。高吞吐量:并行处理,高并发请求。弹性:自动故障恢复和数据修复。高一致性:强一致性和最终一致性选项。无模式架构:灵活的数据存储和查询。云原生:适用于云环境,跨云服务部署。
​Cassandra的优点和缺点是什么
2024-04-09

phpqrcode的优点和缺点是什么

phpqrcode是一个用于生成QR码的PHP库,它具有以下优点和缺点:优点:简单易用:phpqrcode提供了简单的API接口,使用户可以轻松地生成QR码。跨平台:phpqrcode可以在各种操作系统上运行,不受平台限制。自定义性强
phpqrcode的优点和缺点是什么
2024-03-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录