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

news2025/1/25 1:53:47

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.coloradmin.cn/o/1297677.html

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

相关文章

PHP 二维码内容解析、二维码识别

目录 1.首先是一些错误的示例 2.正确示例 3.二维码解析 4.完整示例,含生成 5.代码执行结果 6.参考文档 1.首先是一些错误的示例 本示例使用的是php7.3 通过搜索各种结果逐个尝试以后,得出一个可使用版本 解析错误经历:vendor核心报错 …

m_map绘图添加遥感图片

在matlab下的m_map可以绘制地形图。那么,如何在m_map添加卫星遥感图片呢?这需要使用m_image函数。 基本语法为: m_image(lonlim,latlim,c)其中lonlim和latlim是这个图像地理坐标(经纬度)的边界,是一个长度…

机器学习实验四:贝叶斯分类器

系列文章目录 机器学习实验一:线性回归机器学习实验二:决策树模型机器学习实验三:支持向量机模型机器学习实验四:贝叶斯分类器机器学习实验五:集成学习机器学习实验六:聚类 文章目录 系列文章目录一、实验…

ubuntu22.04 安装cuda

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

谈谈对OOA、OOD、OOP理解

1 前言 按照开发阶段排序,有如下排序: OOA阶段:面向对象分析,此阶段领域建模,需求分析。OOD阶段:面向对象设计,此阶段输出系统概要设计、系统详细设计。OOP阶段:面向对象编程&#…

Android引用SDK包实现高德地图展示

一、准备工作 注册高德地图开放平台 注册过程我就不多说了,挺简单的,需要登录,然后注册成为开发者,还需要支付宝认证、手机号码验证、邮箱验证挺多的,但是速度很快。基本上随时验证随时注册成功。新建应用新建…

C# | 对比不同种类的锁

文章目录 C# 对比不同种类的锁异同点对比表使用方法lock语句Monitor类Mutex类Semaphore类ReaderWriterLock类 结语 C# 对比不同种类的锁 Hi,在C#编程中,想要保护共享资源,通常会用到各种类型的锁。今天我们就来一起看看C#中不同种类的锁&…

UE4.27-UE5.1设置打包Android环境

打包Android配置文件 1. 配置打包Android的SDK需求文件位于下面文件中: 2. 指定了对应的SDK环境变量名字以及NDK需求等: UE4.27-UE5.1--脚本自动配置 安装前提 1. 务必关闭虚幻编辑器和Epic Games Launcher,以确保NDK组件的安装或引擎环境…

ubuntu 20.04.6 server 服务器 下载与安装

下载地址:https://releases.ubuntu.com/20.04.6/ubuntu-20.04.6-live-server-amd64.iso 第一步: 准备U盘,使用软碟通将下载好的镜像写入到U盘中 软碟通网址:https://www.cn.ultraiso.net/xiazai.html 点击:文件 ->…

unity 2d 入门 飞翔小鸟 Cinemachine 记录分数(十二)

1、创建文本 右键->create->ui->leagcy->text 2、设置字体 3、设置默认值和数字 4、当切换分辨率,分数不见问题 拖拽这里调整 调整到如下图 5、编写得分脚本 using System.Collections; using System.Collections.Generic; using UnityEngine; …

MVC、MVP、MVVM模式的区别

前言:这三个表现层框架设计模式是依次进化而形成MVC—>MVP—>MVVM。在以前传统的开发模式当中即MVC模式,前端人员只负责Model(数据库)、 View(视图)和 Controller /Presenter/ViewModel(控…

Java程序设计实验6 | 集合类

*本文是博主对Java各种实验的再整理与详解,除了代码部分和解析部分,一些题目还增加了拓展部分(⭐)。拓展部分不是实验报告中原有的内容,而是博主本人自己的补充,以方便大家额外学习、参考。 (解…

LeetCode算法题解(单调栈)|LeetCode503. 下一个更大元素 II、LeetCode42. 接雨水

一、LeetCode503. 下一个更大元素 II 题目链接:503. 下一个更大元素 II 题目描述: 给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。 数字 x 的…

【Web渗透】渗透测试简介

基本介绍 渗透测试(Penetration Testing)是一种通过模拟恶意攻击者的技术与手法对目标系统在可控制的范围内进行安全测试和安全评估的过程,其目的是在挖掘当前系统潜在的安全风险点后对系统进行安全升级来提升系统的安全性,并以此来规避被恶意攻击者入侵…

【C语言】操作符详解(二)

目录 移位操作符 左移操作符 右移操作符 位操作符:&、|、^、~ 一道面试题 移位操作符 <<左移操作符 >>右移操作符注:移位…

2023年【R2移动式压力容器充装】考试试卷及R2移动式压力容器充装实操考试视频

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 R2移动式压力容器充装考试试卷是安全生产模拟考试一点通生成的&#xff0c;R2移动式压力容器充装证模拟考试题库是根据R2移动式压力容器充装最新版教材汇编出R2移动式压力容器充装仿真模拟考试。2023年【R2移动式压力…

WGCLOUD v3.5.0 新增支持监测交换机的接口状态UP DOWN

WGCLOUD v3.5.0开始 可以监测交换机或SNMP设备的接口状态了&#xff0c;直接上图

浅析以太网接口及串口转以太网技术

浅析以太网接口 以太网相关接口主要包括&#xff1a;MII/RMII/SMII以及GMII/RGMII/SGMII接口。 一、MII接口 MII&#xff08;Media Independent Interface&#xff09;介质无关接口或称为媒体独立接口&#xff0c;它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口和…

《安富莱嵌入式周报》第328期:自主微型机器人,火星探测器发射前失误故障分析,微软推出12周24期免费AI课程,炫酷3D LED点阵设计,MDK5.39发布

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 更新一期视频教程&#xff1a; 【实战技能】 单步运行源码分析&#xff0c;一期视频整明白FreeRTOS内核源码框架和运行…

使用 iperf 和 iftop 测试网络带宽

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…