TypeScript入门实战笔记 -- 开篇 为什么要选择 TypeScript ?

typescript 在线编辑器icon-default.png?t=N7T8http://typescript.p2hp.com/play?#code/JYOwLgpgTgZghgYwgAgJIFUDO1Uhge2QG8AoZc5YAEwC5kQBXAWwCNoBuMikOJiOzGCigA5pwrI4ANzhg4UAPwChozgF8SmmAxAIwwfCGRYcefAAoADlHyXMdDNii4CASmJdyCQ5nwAbCAA6P3wRKxs7ABpkAHJrW0wY1xINEhNnM3MiSlpkAEZonj46GIBrROQ1ZKA

掘金编辑器icon-default.png?t=N7T8https://code.juejin.cn/

🍍1. TypeScript 的本质

首先,TypeScript 和 JavaScript 本质上是相同的语言,它们共享相同的语法和基本特性。你可以将 TypeScript 看作是在 JavaScript 的基础上添加了类型注解的一种扩展。例如,在 TypeScript 中,你可以使用 const num: number = 1; 这样的语法来声明一个变量 num 的类型为 number,而在 JavaScript 中则不需要进行类型注解。

其次,TypeScript 是一门中间语言,它需要经过转译(transpilation)过程将其转换为纯 JavaScript 代码。这意味着 TypeScript 的代码最终会被编译成可以在各种终端上解释和执行的纯 JavaScript 代码。这种转译过程并不会破坏已有的 JavaScript 知识体系,因为 TypeScript 并没有引入与 JavaScript 完全不同的新语法,而是保持了对现有语法的兼容性。

总结来说,TypeScript 是一种基于 JavaScript 的语言扩展,它通过添加类型注解来提供更好的代码可读性和可维护性。虽然 TypeScript 需要转译为 JavaScript,但它并不改变 JavaScript 的基本特性和语法,因此对于熟悉 JavaScript 的人来说,学习和使用 TypeScript 相对容易。

🍍2. TypeScript 更加可靠

TypeScript 是一种静态类型检查的语言,它可以在代码运行之前进行类型检查,从而帮助开发者发现潜在的错误。当 TypeScript 类型检测能力覆盖到整个文件、整个项目代码后,它能够自动检测出任意破坏约定的改动,并提出类型错误。

这意味着,当你在修改或重构业务逻辑时,你可以更加放心地进行操作,因为你不必担心因为考虑不周而犯下低级错误。TypeScript 会在编译阶段捕获这些错误,而不是在运行时。这样,你可以在开发过程中尽早发现并修复问题,提高代码质量和可维护性。接手复杂的大型应用时,TypeScript 能让应用易于维护、迭代,且稳定可靠,也会让你更有安全感。

🍍3. 面向接口编程

编写 TypeScript 类型注解,本质就是接口设计。 以下是使用 TypeScript 设计的一个展示用户信息示例,从中我们一眼就能了解组件接收数据的结构和类型,并清楚地知道如何在组件内部编写安全稳定的代码。

interface UserInfo {id: number;name: string;age: number;email?: string;
}const userInfo: UserInfo = {id: 1,name: 'ks',age: 25,email: 'ks@example.com'
};

TypeScript 是一种静态类型检查的编程语言,它可以帮助开发者在编写代码时更加明确变量和函数的类型,从而提高代码的可读性和可维护性。通过使用 TypeScript,你可以更好地组织和管理你的代码,避免出现类型错误和运行时错误。

此外,TypeScript 还提供了一些高级功能,如类、模块、装饰器等,这些功能可以帮助你更好地组织和管理复杂的代码结构。通过使用这些功能,你可以将代码分解成更小、更易于管理的部分,从而提高代码的可读性和可维护性。

总之,TypeScript 可以帮助你更好地组织和管理你的代码,提高代码的可读性和可维护性。通过使用 TypeScript,你可以更好地理解接口约定的重要性,并约束自己/他人设计接口、编写注解、遵守约定,从而乐此不疲。

🍍4. TypeScript 正成为主流

TypeScript 是一种静态类型检查的编程语言,它是由 Microsoft 开发和维护的。相比竞争对手 Facebook 的 Flow,TypeScript 更具备类型编程的优势,而且还有 Microsoft、Google 这两家国际大厂做背书。

越来越多的主流框架(例如 React、Vue 3、Angular、Deno、Nest.js 等)要么选用 TypeScript 编写源码,要么为 TypeScript 提供了完美的支持。随着 TypeScript 的普及,TypeScript 在国内(国内滞后国外)成了一个主流的技术方向,国内各大互联网公司和中小型团队都开始尝试使用 TypeScript 开发项目,且越来越多的人正在学习和使用它。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/209773.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

营收增速持续放缓,博通CEO期待AI崛起救场 | 百能云芯

博通作为苹果等大型科技公司的芯片供应商,于周四发布了财报。尽管截至10月29日的第四季度营收增长了4%至93亿美元,符合市场预期,但增速已经降至2020年以来的最低水平。 由于企业客户和电信供应商在控制支出方面的谨慎态度,博通的销…

IDEA构建springBoot新项目时JDK只有17和21,无法选择JDK8解决方案

今天创建springboot新项目时,发现IDEA里JDK选项只有17和21,无法选择本机的JDK8,网上查资料后发现是springboot2.7于11.24号后停止维护,基于2.7和java8的spring Initializ官方不再维护,解决方案是在server URL栏&#x…

东北大学Python

目前金属矿开采,爆破还是主要的破岩方式,为了保证巷道采场的安全,需要对爆破震动进行监测,获取的监测数据如附件,第1列数据为震动的序号,第2、3、4列为x,y,z三个方向的震动速度,往往由于各种因素…

C++ 运算符重载与操作符重载

目录 运算符重载 运算符重载的特性 其他运算符重载的实现 默认成员函数——赋值运算符重载 默认成员函数——取地址操作符重载 const成员 附录 运算符重载 C为了增强代码的可读性引入了运算符重载,运算符重载是具有特殊函数名的函数,也具有其返回…

Linux C/C++ 分析网络流量(十六进制TCP数据包分析)

在分析TCP数据包时,理解TCP协议的工作原理和报文格式是关键。TCP是一种面向连接的、提供可靠的、端到端的字节流传输服务。其头部结构包括源端口、目标端口、序列号、确认应答号等字段。序列号是在建立连接时由计算机生成的随机数作为初始值,每发送一次数…

使用Pytorch从零开始实现BERT

生成式建模知识回顾: [1] 生成式建模概述 [2] Transformer I,Transformer II [3] 变分自编码器 [4] 生成对抗网络,高级生成对抗网络 I,高级生成对抗网络 II [5] 自回归模型 [6] 归一化流模型 [7] 基于能量的模型 [8] 扩散模型 I, 扩散模型 II…

PaddleDetection系列2--NCCL安装及测试

NCCL安装及测试 1 系统信息查看1.1 查看本机的操作系统和位数信息:1.2 确认处理器架构1.3 确认cuda版本 2 NCCL安装2.1 根据上面的系统架构以及CUDA版本,进入[官网](https://developer.nvidia.com/nccl/nccl-download)下载匹配的nccl,若想获取…

C++笔试题之回文数的判断

“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。 设n是一任意自然数…

MSSQL 程序集使用方法

1.C# 写一个程序 1.1新建一个项目【类库【.Net FrameWork】 1.2编写代码 删除 namespace ApiSQLClass { } 代码如下:【具体调用API模式根据具体编写】 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.…

酷开科技以创新为动力用大数据提升品牌认知

在21世纪的今天,我们生活在一个被互联网深深改变的世界。互联网不仅改变了我们的生活方式,也正在改变我们的思维方式和工作方式。而互联网作为一种新的发展趋势,更是为我们提供了无数的机会和无限可能性,从电子商务时代到社交网络…

scala编码

1、Scala高级语言 Scala简介 Scala是一门类Java的多范式语言,它整合了面向对象编程和函数式编程的最佳特性。具体来讲Scala运行于Java虚拟机(JVM)之上,井且兼容现有的Java程序,同样具有跨平台、可移植性好、方便的垃圾回收等特性…

启动游戏出现concrt140.dll错误的8种解决方法

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是找不到concrt140.dll文件。这个错误通常会导致程序无法正常运行,给用户带来困扰。本文将介绍找不到concrt140.dll无法继续执行代码的8个方法,同时探讨concrt140.dll丢…

LinuxBasicsForHackers笔记 -- 文件系统和存储设备管理

设备目录/dev Linux 有一个特殊的目录,其中包含代表每个连接设备的文件:相应命名的 /dev 目录。 /dev中有很多设备列表。 特别令人感兴趣的是设备 sda1、sda2、sda3、sdb 和 sdb1,它们通常是硬盘驱动器及其分区以及 USB 闪存驱动器及其分区…

理解基于 Hadoop 生态的大数据技术架构

转眼间,一年又悄然而逝,时光荏苒,岁月如梭。当回首这段光阴,不禁感叹时间的匆匆,仿佛只是一个眨眼的瞬间,一年的旅程已成为过去,而如今又到了画饼的时刻了 ! 基于 Hadoop 生态的大数…

固态硬盘SSD

目录 1.2 组成1.3 读写性能特性1.4 与机械硬盘相比的特点1.5 磨损均衡技术 \quad \quad SSD基于闪存技术Flash Memory, 属于电可擦除ROM, 即EEPROM \quad 1.2 组成 \quad \quad \quad 系统对固态硬盘的读写是以页为单位的 固态硬盘里的块相当于机械硬盘里的磁道 固态硬盘里的页…

Redis基础系列-持久化

Redis基础系列-持久化 文章目录 Redis基础系列-持久化1. 什么是持久化2. 为什么要持久化3. 持久化的两种方式3.1 持久化方式1:RDB(redis默认持久化方式)3.11 配置步骤-自动触发3.12 配置步骤-手动触发3.12 优点3.13 缺点3.14 检查和修复RDB快照文件3.15 哪些情况会触…

ubuntu22.04 安装cuda

CUDA(Compute Unified Device Architecture)是由 NVIDIA 开发的一种并行计算平台和编程模型。它允许开发者利用 NVIDIA 的 GPU(图形处理单元)进行高效的计算处理。CUDA 通过提供一系列的 C、C 和 Fortran 扩展,使得开发…

我的NPI项目之Android电源系列 -- 关于剩余充满时间的问题(一)

我的新项目是基于高通最新的5G平台,但是由于还没有拿到EVT。所以,就在目旧的平台和OS上进行学习。遇到第一个问题就是插上type-c之后,充满剩余时间异常的问题。 问题描述,在充电过程中,显示充满时间为“0 min left unt…

9.基于SpringBoot3+I18N实现国际化

1. 新建资源文件 在resources目录下新建目录i18n, 然后 新建messages_en.properties文件 user.login.erroraccount or password error!新建messages_zh_CN.properties文件 user.login.error帐户或密码错误!2. 新建LocaleConfig.java文件 Configurati…