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 开发项目,且越来越多的人正在学习和使用它。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python:核心知识点整理大全11-笔记

目录 ​编辑 6.2.4 修改字典中的值 6.2.5 删除键—值对 注意 删除的键—值对永远消失了。 6.2.6 由类似对象组成的字典 6.3 遍历字典 6.3.1 遍历所有的键—值对 6.3.2 遍历字典中的所有键 往期快速传送门👆(在文章最后): 6.…

排序:归并排序

目录 归并排序——有递归的: 基本思想: 思路分析: 代码分析: 划分区间思路: 代码思路分析: 归并排序——有递归的: 基本思想: 归并排序(MERGE-SORT&#xff…

《Kafka权威指南》读书笔记

《Kafka权威指南》第一、三、四、六章,是重点。可以多看看。 一、 Kafka的组成 kafka是一个发布与订阅消息系统消息:kafka的数据单元称为"消息"。可以把消息看成是数据库中的一个"数据行"。 消息的key:为key生成一个一…

鸿蒙开发组件之Image

Image组件加载图片方式有三种: 1、网络地址加载 直接Image(xxxx),添加上图片的网络地址就可以了。注意:真机、模拟题调试需要申请"ohos.permission.INTERNET"权限 Image(https://xxxxxxx) 2、PixelMap格式加载像素图 Image(PixelMapObjec…

【小沐学Python】Python实现语音识别(vosk)

文章目录 1、简介1.1 vosk简介1.2 vosk模型1.3 vosk服务 2、安装3、测试3.1 命令行测试3.2 代码测试 结语 1、简介 https://alphacephei.com/vosk/index.zh.html Vosk 是一个语音识别工具包。 1.1 vosk简介 支持二十种语言 - 中文,英语,印度英语&#…

Mac虚拟机CrossOver23破解版下载和许可证下载

CrossOver Mac Mac 和 Windows 系统之间的兼容工具。使 Mac 操作系统的用户可以运行 Windows 系统的应用,从办公软件、实用工具、游戏到设计软件, 您都可以在 Mac 程序和 Windows 程序之间随意切换。 系统要求 运行macOS的基于Intel或Apple Silicon 的…

【原创】【一类问题的通法】【真题+李6卷6+李4卷4(+李6卷5)分析】合同矩阵A B有PTAP=B,求可逆阵P的策略

【铺垫】二次型做的变换与相应二次型矩阵的对应:二次型f(x1,x2,x3)xTAx,g(y1,y2,y3)yTBy ①若f在可逆变换xPy下化为g,即P为可逆阵,有P…

【SpringBoot篇】5种类型参数传递json数据传参的操作

🎊专栏【SpringBoot】 🍔喜欢的诗句:天行健,君子以自强不息。 🎆音乐分享【如愿】 🎄欢迎并且感谢大家指出小吉的问题🥰 文章目录 🌺普通参数🌺POJO参数🌺嵌套…

Java面试遇到的一些常见题

目录 1. Java语言有几种基本类型,分别是什么? 整数类型(Integer Types): 浮点类型(Floating-Point Types): 字符类型(Character Type): 布尔类…

Unity中Batching优化的GPU实例化(4)

文章目录 前言一、构建需要实例化的额外数据二、在顶点着色器,将实例化 ID 从 appdata 存入 v2f 传给片元着色器三、在片断着色器中访问具体的实例化变量三、使用代码修改Shader材质属性,实现GPU实例化后不同对象颜色不同的效果1、在C#测试脚本生成小板凳…

Redis 环境搭建2

文章目录 第2关:使用 Redis 第2关:使用 Redis 本文是接着上篇文章写的第二关代码,部分人再进入第二关时不会保留第一关的配置的环境,可以通过下面一句代码进行检验。 redis-cli -p 7001 -c如果进入到了redis界面就是有环境&…

Android 分享小结

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 目录 一、导读二、微信 分享 三、 QQ 、QQ空间(Qz…

2024 年顶级的 Android 系统修复软件与方法

您是否正在寻找可以修复 PC 上 Android 操作系统的工具?这是我们精选的最好的 Android 系统修复软件! Android 是世界著名的智能手机操作系统。全世界有数百万人使用这个操作系统,这使得它安全可靠。然而,这仍然不能使它完美无缺…

STM32之SPI总线

一、SPI总线概述 1、SPI总线介绍 SPI是一种通信协议,它是摩托罗拉公司研发出来的一种通信协议,就有自己的特点(串行,并行,单工,半双工,全双工,同步异步)。它主要应用于音…

Kotlin Flow 操作符

前言 Kotlin 拥有函数式编程的能力,使用Kotlin开发,可以简化开发代码,层次清晰,利于阅读。 然而Kotlin拥有操作符很多,其中就包括了flow。Kotlin Flow 如此受欢迎大部分归功于其丰富、简洁的操作符,巧妙使…

【头歌系统数据库实验】实验8 SQL的复杂多表查询-2

目录 第1关:基于派生表查询每个队员解答中超过他平均memory的user_id及题目编号problem_id 第2关:用ANY/ALL实现查询2019级选手(user_id前4位为2019)满足比2020级其中一个选手注册时间早即可的选手 第3关:用聚集查询…

【MySQL】MySQL 在 Centos 7环境安装教程

文章目录 1.卸载不要的环境2.检查系统安装包3.获取mysql官方yum源4.安装mysql yum 源,对比前后yum源5.安装mysql服务6.查看配置文件和数据存储位置7.启动服务和查看启动服务8.登录9.配置my.cnf 1.卸载不要的环境 先检查是否有mariadb存在 ps ajx |grep mariadb如果…

【Linux】系统初识之冯诺依曼体系结构与操作系统

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.冯诺依曼体系结构 2.操作…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《考虑电力-交通交互的配电网故障下电动汽车充电演化特性》

这个标题涉及到电力系统、交通系统和电动汽车充电的复杂主题。让我们逐步解读: 考虑电力-交通交互的配电网故障: 电力-交通交互: 指的是电力系统和交通系统之间相互影响、相互关联的关系。这可能涉及到电力需求对交通流量的影响,反…

爬虫解析-jsonpath (六)

jsonpath只能解析本地文件 jsonpath的使用: obj json.load(open(.json文件,r,encodingutf-8))place_name jsonpath.jsonpath(obj, json语法) 目录 1.安装jsonpath 2.Xpath和jsonpath的语法对比 练习:使用jsonpath解析JSON文件 3.使用jsonpath抓取…