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

今天学习的是TypeScript 基础,目标是了解 TypeScript 的基本概念,安装 TypeScript,编写第一个 TypeScript 程序。

  1. TypeScript 简介
  2. 安装 TypeScript
  3. TypeScript 编译过程
  4. 编写第一个 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());

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

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

相关文章

Docker学习—Docker的安装与使用

Docker安装 1.卸载旧版 首先如果系统中已经存在旧的Docker,则先卸载: yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine2.配置Docker的yum库 首先…

69.ov5640摄像头HDMI灰度显示

(1)理论学习 灰度像素:在 RGB 颜色模型下,图像中每个像素颜色的 R、G、B 三种基色的分量值相等的像素。由灰度像素组成的灰度图像只能表现256中颜色(或亮度),通常把灰度图像中像素的亮度称为灰…

Star Tower:开启数据存储新纪元

在科技飞速发展的当今时代,数据如同璀璨的星辰,闪耀着无尽的价值。而数据存储系统,则是承载这些星辰的浩瀚宇宙。Star Tower 以其卓越的性能和创新的理念,开启了数据存储的新纪元。 Star Tower 的分布式存储架构,是一…

基于SSM的企业管理系统(源码+lw+调试+技术指导)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

鸿蒙应用App测试-通用测试

注意:大家记得学完通用测试记得再学鸿蒙专项测试 鸿蒙应用App测试-专项测试(DevEco Testing)-CSDN博客 注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得…

掌握Qt调试技术

文章目录 前言一、Qt调试的基本概念二、Qt调试工具三、Qt调试实践四、Q调试技巧五、总结前言 在软件开发中,调试是一个至关重要的环节。Qt作为一个广泛使用的跨平台C++图形用户界面应用程序开发框架,其调试技术也显得尤为重要。本文将深入探讨Qt调试技术,帮助读者更好地掌握…

Qt中时间戳转化为时间

QT中时间和时间戳互相转化_currentsecssinceepoch-CSDN博客 qDebug()<<QDateTime::currentMSecsSinceEpoch(); 1730838034770 时间戳(Unix timestamp)转换工具 - 在线工具 (tool.lu) [static] qint64 QDateTime::currentMSecsSinceEpoch() Returns the number of milli…

势不可挡 创新引领 | 生信科技SOLIDWORKS 2025新品发布会·苏州站精彩回顾

2024年11月01日&#xff0c;由生信科技举办的SOLIDWORKS 2025新产品发布会在江苏苏州圆满落幕。现场邀请到制造业的专家学者们一同感受SOLIDWORKS 2025最新功能&#xff0c;探索制造业数字化转型之路。 在苏州站活动开场&#xff0c;达索系统专业客户事业部华东区渠道经理马腾飞…

ArcGIS006:ArcMap常用操作151-200例动图演示

摘要&#xff1a;本文介绍了ArcMap邻域分析、栅格表面分析、水文分析、区域分析、提取分析等工具箱中的工具功能。包括计算图层间点、线、面要素间的距离、位置和角度&#xff0c;创建缓冲区&#xff0c;添加计算信息到属性表&#xff0c;分割面要素&#xff0c;编号&#xff0…

关于马达驱动芯片AT6237的开发指南(兼容DRV8837)

一、芯片引脚介绍 1.芯片引脚 二、系统结构图 三、功能描述 逻辑功能

利用AI提升SEO效果的关键词策略

内容概要 在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;正逐步成为提升搜索引擎优化&#xff08;SEO&#xff09;效果的重要工具。SEO的核心在于关键词的选择与运用&#xff0c;而AI技术则为我们提供了一种智能化的分析和优化方案。通过对大量数据进行挖掘…

了解数据库设计中的反规范化

反规范化是指通过增加冗余数据来提高数据库的读取效率。也就是说,反规范化通过在表中增加冗余字段来减少数据库中的表连接,以提高查询速度。规范化和反规范化是关系型数据库设计中的两个重要方面,它们分别代表了数据组织方式上的两个不同方向。规范化是为了减少数据冗余和提…

【系统集成项目管理工程师教程】第10章 启动过程组

启动过程组包含制定项目章程和识别干系人两个过程&#xff0c;是项目的起始阶段&#xff0c;旨在协调各方期望&#xff0c;明确项目范围、目标与干系人&#xff0c;确保项目符合组织战略&#xff0c;为项目成功奠定基础&#xff0c;在项目管理中起着至关重要的引领作用。 10.…

斑马打印机如何与工业系统(如MES、ERP、数据库等)自动化通讯?

摘要&#xff1a;本文将介绍OPC Router与斑马&#xff08;Zebra&#xff09;打印机相结合的优势&#xff0c;探讨其在工业4.0和物联网领域的应用&#xff0c;以及如何通过简单配置实现数据传输和智能监控。 在工业生产过程中&#xff0c;标签打印环节至关重要。斑马&#xff08…

二开CS—上线流量特征shellcode生成修改模板修改反编译打包

前言 免杀几乎讲的差不多了&#xff0c;今天讲个CS的二次开发。我们原生态的CS特征肯定都是被提取完的了&#xff0c;包括它的流量特征&#xff0c;而我们要做的就是把它的流量特征给打乱&#xff0c;还可以修改生成的后门&#xff0c;使其生成即免杀。 实验环境 CS4.4&…

Linux kernel 源码下载与源码在线阅读地址及其相关资源网站

一、 前言 Linux内核源码的下载地址和在线阅读方式有多种&#xff0c;下面是一些与之相关的网址。同时也包含一些与kernel相关的一些资源网站&#xff0c;供大家参考学习&#xff01; 二、下载地址 Linux官方网站 地址&#xff1a; https://www.kernel.org/ 国内版本下载…

谷歌推出全新AI生成游戏玩法 —— 无限生成角色生活模拟游戏“Unbounded”

随着人工智能技术的飞速发展,游戏行业正迎来前所未有的创新。近日,谷歌宣布了一款名为“Unbounded”的新型游戏,这是一款基于生成式AI技术的角色生命模拟游戏,它将为玩家带来前所未有的开放性和互动性体验。 项目概览 项目名称:Unbounded类型:生成式无限游戏(Generati…

高校实验室安全巡检系统设计与实现(源码+定制+开发)高校实验室巡检系统、实验室安全管理平台、实验室安全监控系统、智能实验室巡查系统、高校实验室风险管理

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

用Dify搭建AI知识库

Dify 可以上传各种格式文档和抓取网页数据训练自已的知识库 一 安装 1 Docker安装 我基于Docker来安装的&#xff0c;所以本机先装Docker Desktop, Docker 安装方法在这里 2 Dify 安装 git clone https://github.com/langgenius/dify.git cd dify/docker copy .env.exampl…

使用 Flask 和 ONLYOFFICE 实现文档在线编辑功能

提示&#xff1a;CSDN 博主测评ONLYOFFICE 文章目录 引言技术栈环境准备安装 ONLYOFFICE 文档服务器获取 API 密钥安装 Flask 和 Requests 创建 Flask 应用项目结构编写 app.py创建模板 templates/index.html 运行应用功能详解文档上传生成编辑器 URL显示编辑器回调处理 安全性…