【TS】九天学会TS语法——1.TypeScript 是什么

💯 欢迎光临清清ww的博客小天地💯

🔥 个人主页:【清清ww】🔥

📚 系列专栏:vue3 | TypeScript 📚

🌟 学习本无底,前进莫徬徨。🌟

开始学习

目录

一、TypeScript 简介

1.JavaScript引入

2.TypeScript引入

二、安装 TypeScript

三、TypeScript 编译过程

四、编写第一个 TypeScript 

引言

随着前端开发的不断发展,TypeScript 已经成为现代前端开发中不可或缺的一部分。作为一名前端开发者,掌握 TypeScript 语法对于提高开发效率和代码质量具有重要意义。本文将介绍 TypeScript 的基本概念、安装方法、编译过程以及如何编写第一个 TypeScript 程序。

一、TypeScript 简介

在了解TypeScript(简称TS)是什么之前,首先得知道什么是JavaScript(简称JS)。

1.JavaScript引入

JS是一种用于网页开发的编程语言,它是一种动态的、弱类型的语言,广泛用于网页交互和动态效果的实现。

JavaScript最初是作为一种客户端脚本语言而开发的,用于在网页上实现交互功能,比如表单验证、动态内容更新、动画效果等。随着技术的发展,JavaScript也逐渐被应用于服务器端开发,例如Node.js。

2.TypeScript引入

TypeScript 是一种由微软开发的、基于 JavaScript 的开源编程语言。它为 JavaScript 添加了静态类型和面向对象编程特性,使得代码更加健壮、易于维护。TypeScript 提高了开发效率和代码质量,同时保持与 JavaScript 的兼容性。

TS 和 JS 之间的关系可以理解为“超集”与“子集”的关系。TS 是 JS 的一个超集,它包含了 JS 的所有特性,并且在此基础上增加了额外的特性,主要是静态类型系统

TS的静态类型系统:

一种在编译时检查代码中变量、函数、对象等的数据类型的方法。该类型检查发生在代码运行之前,因此称为“静态”类型检查。静态类型系统的主要目的是提高代码的可读性、可维护性和减少运行时错误。


TS 扩展了 JS  的语法,使其能够添加静态类型注解。这些类型注解在编译时提供额外的检查,帮助开发者捕获潜在的错误,提高代码的可维护性和可读性。TS 最终会被编译成纯 JS 代码,因此任何支持 JS 的环境都可以运行 TS 编译后的代码。

静态类型注解

 TS 中的一种特性,它允许开发者在代码中显式地指定变量、函数参数、函数返回值等的数据类型。

let message: string = "Hello, World!";

在这个例子中,message 变量被指定为 string 类型。如果尝试将一个非字符串值赋给 message,TS 编译器将会报错。

静态类型注解不仅限于基本类型,还可以用于更复杂的类型,如数组、元组、枚举、接口、自定义类型和泛型等。通过这些类型注解,TypeScript 编译器可以更准确地理解代码的结构和意图,从而提供更好的代码提示和错误检查。

总的来说,TS 是 JS 的一个超集,它为 JS 添加了类型安全和其他高级特性,同时保持了与 JS 的向后兼容性。


二、安装 TypeScript

首先确保已安装 Node.js 和 npm。

然后打开命令行工具,输入以下命令安装 TS :

npm install -g typescript

三、TypeScript 编译过程

TS 编译过程是将 TS 代码转换为 JS 代码的过程。以下是 TS 编译过程的步骤:

  1. 编写TS 代码,保存为 .ts 文件。
  2. 使用 TS 编译器(tsc)将 .ts 文件编译为 .js 文件。
  3. 在浏览器或 Node.js 环境中运行编译后的 .js 文件。

四、编写第一个 TypeScript 

下面是一个简单的 TypeScript 程序示例,展示了如何定义变量、函数和类。我们通过这个例子简单感受一下 TS 。

// 定义一个名为 message 的变量,并显式地为其指定类型为 string
let message: string = "Hello, TypeScript!";

// 定义一个名为 greet 的函数,它接受一个名为 name 的参数,该参数的类型被指定为 string
// 函数的返回类型也被指定为 string
function greet(name: string): string {
  // 使用模板字符串来构建并返回问候语
  return `Hello, ${name}!`;
}

// 定义一个名为 Person 的类,它具有一个名为 name 的属性,该属性的类型为 string
class Person {
  // 类的构造函数,它接受一个名为 name 的参数,并将其赋值给类的 name 属性
  constructor(name: string) {
    this.name = name;
  }

  // 定义一个名为 greet 的方法,它返回一个包含实例 name 属性的问候语
  greet() {
    return `Hello, my name is ${this.name}!`;
  }
}

// 使用变量 message,并打印其值
console.log(message);

// 调用函数 greet,传入字符串 "Alice" 作为参数,并打印返回的问候语
console.log(greet("Alice"));

// 创建一个 Person 类的实例,传入字符串 "Bob" 作为构造函数的参数
const person = new Person("Bob");

// 调用 person 实例的 greet 方法,并打印返回的问候语
console.log(person.greet());

🚀感谢您的细心品读,完成了这篇关于【TS】九天学会TS语法——1.TypeScript是什么的旅程。 🚀

🎉 您的每一个鼓励都是我不断更新的动力,不要忘记点赞收藏🎉

🔍 期待与您一同深入前端技术的海洋,共同探索那些未知的宝藏,揭开Web开发的层层迷雾。🔍

🌟 🌈 感恩您的支持与同行,愿我们的前端征途越走越远!🌈 🌟

 

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

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

相关文章

comfyUI官方笔记整理

官网教程笔记ComfyUI_examples 1.ComfyUI基础教程ComfyUI Basic Tutorial VN 从网上下载下来的模型ckpt和safetensors包含有3个不同的模型,CLIP,主模型还有VAEclip模型会和CLIPTextEncode进行连接,将文本编码为模型可以理解的向量形式。在S…

《数据治理精选案例集2.0(2024版)》592页PDF(已授权分享)

《亿信华辰数据治理精选案例集2.0》是北京亿信华辰软件有限责任公司倾力打造的专业数据治理案例集,汇集了100个一线政企数据治理实践案例,覆盖13大行业和500业务场景,通过深入剖析数据治理难题,提供了新思路和实战经验&#xff0c…

​通过人工智能技术实时识别安全着装规范、作业规范、设备状态、环境安全的智慧物流开源了。

智慧物流视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。构建基于Ai技术的…

喜报!景联文科技成功通过DCMM数据管理能力成熟度二级认证

10月30日,中国电子信息行业联合会公示了新一批DCMM贯标企业,景联文科技成功通过DCMM数据管理能力成熟度二级认证(乙方认证)。 DCMM是《数据管理能力成熟度评估模型》的简称,是我国在数据管理领域首个正式发布的国家标准…

【linux学习指南】磁盘分区挂载到目录,形成文件系统挂载点

文章目录 📝前言🌠 查看系统分区🌉制作一个大的磁盘块,就当做一个分区🌉格式化写入文件系统🌉将分区挂载到指定的目录🌉在分区重创建文件🌉卸载分区🌉分区挂载到目录才能…

Jenkins声明式Pipeline流水线语法示例

系列文章目录 docker搭建Jenkins2.346.3版本及常用工具集成配置(ldap、maven、ansible、npm等) docker安装低版本的jenkins-2.346.3,在线安装对应版本插件失败的解决方法 文章目录 系列文章目录jenkins流水线基础1、pipeline1.1、什么是pipeline?1.2、为什么使用pi…

python机器人Agent编程——实现一个本地大模型和爬虫结合的手机号归属地天气查询Agent

目录 一、前言二、准备工作三、Agent结构四、python模块实现4.1 实现手机号归属地查询工具4.2实现天气查询工具4.3定义创建Agent主体4.4创建聊天界面 五、小结PS.扩展阅读ps1.六自由度机器人相关文章资源ps2.四轴机器相关文章资源ps3.移动小车相关文章资源ps3.wifi小车控制相关…

uni-app打包后报错云服务空间未关联

使用uni-app打包到h5 项目里面用到了uni-app的云端一体城市选择组件,这个组件数据用到了uniCloud云服务空间,在本地运行没问题,打包之后测试环境报错: 一顿查,查到了官网是这样说的: cli publish --platfo…

SpringBoot框架:共享汽车行业的技术升级

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了共享汽车管理系统的开发全过程。通过分析共享汽车管理系统管理的不足,创建了一个计算机管理共享汽车管理系统的方案。文章介绍了共享汽车管理系统的系…

DBAPI连接阿里云 maxcompute 报错

使用正确的驱动包 访问以下链接寻找驱动包 https://github.com/aliyun/aliyun-odps-jdbc/releases/tag/v3.4.3 注意要使用odps-jdbc-3.4.3-jar-with-dependencies.jar ,这个是完整的jar包 不要使用odps-jdbc-3.4.3.jar,这个不是完整的,它还…

【数据集】【YOLO】【目标检测】树木倒塌识别数据集 9957 张,YOLO道路树木断裂识别算法实战训练教程!

一、数据集介绍 【数据集】树木倒塌识别数据集 9957 张,目标检测,包含YOLO/VOC格式标注。 数据集中包含1种分类:{0: fallen_tree},代表倒塌或者断裂的树木。 数据集来自国内外图片网站和视频截图; 可用于无人机树木…

贪心算法day2(最长递增子序列)

目录 1.最长递增子序列 方法一:动态规划 方法二:贪心二分查找 1.最长递增子序列 链接:. - 力扣(LeetCode) 方法一:动态规划 思路:我们定义dp[i]为最长递增子序列,那么dp[j]就是…

基于微信小程序的电子购物系统的设计与实现(lw+演示+源码+运行)

摘 要 由于APP软件在开发以及运营上面所需成本较高,而用户手机需要安装各种APP软件,因此占用用户过多的手机存储空间,导致用户手机运行缓慢,体验度比较差,进而导致用户会卸载非必要的APP,倒逼管理者必须改…

雨晨 23H2 Windows 11 企业版 IE VCDX 适度 22631.4445 (VIP有限开放版本)

雨晨 23H2 Windows 11 企业版 IE VCDX 适度 22631.4445 (VIP有限开放版本) 文 件: 雨晨 23H2 Windows 11 企业版 适度 22631.4445 install.wim 提 取 码: ZZLR 大 小: 2824999564 字节 修改时间: 2024年11月9日, 星期六, 05:33:05 MD5 : 9C88…

OWASP TOP10 OSS 风险:开源软件安全指南

OWASP OSS 列表提供了旨在绕过 CVE 目录等滞后指标的建议,并为安全从业者提供了安全使用 OSS 组件的指南。 在最近的一些暴露的漏洞和风险之后,对开源软件 (OSS)的安全和使用方式进行批判性审视的呼声越来越高,特别是 …

无人机培训机型有哪些?CAAC考证选3类还是4类

无人机培训是一个涵盖多个方面的综合性过程,旨在培养具备无人机操作技能和相关知识的人才。 无人机培训机型 无人机培训通常涵盖多种机型,以满足不同领域和应用场景的需求。常见的无人机培训机型包括: 1. 多旋翼无人机:也称为多…

浏览器漫谈HTML--2.1印象深刻的标签-语义化标签

语义化标签 HTML语义化标签是HTML5引入的一个重要特性 常见的语义化标签&#xff1a; <header>, <nav>, <main>, <article>, <section>, <aside>, <footer> 布局如下 底层实现逻辑&&好处 语义化标签其实底层实现逻辑和…

el-table-column prop值根据数组获取

方法一&#xff1a; 可以给el-table-column添加一个属性&#xff1a;formatter&#xff0c;代码如下&#xff1a; 这里是因为多个列都需要同样的计算&#xff0c;所以使用column.property获取属性&#xff0c;不然可以直接row.属性 方法二&#xff1a; 直接在template scope …

2021-04-22 51单片机玩转点阵

理论就不赘述了,网络上多得很,直接从仿真软件感性上操作认识点阵,首先打开ISIS仿真软件,放置一个点阵和电源与地线就可以开始了;由点阵任何一脚连线到地线,另一边对应的引脚就连接到电源,如图:点击运行看是否点亮?看到蓝色与红色的点表示电源正常但是没有任何亮点,这时对调一下…

数据结构---详解单链表

一、单链表的概念及性质 1、链表的概念 链表是一种物理存储结构上非连续、非顺序的储存结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 我们看上图&#xff0c;一个链表就很像一节节车厢一样&#xff0c;和顺序表不同的是&#xff0c;链表里的每节“…