当前位置: 首页 > article >正文

【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.kler.cn/a/383349.html

相关文章:

  • 【FAQ】HarmonyOS SDK 闭源开放能力 — Vision Kit(2)
  • 对文件内的文件名生成目录,方便查阅
  • ASP.NET Core Web API 控制器
  • 重温设计模式--中介者模式
  • springboot中使用gdal将表中的空间数据转shapefile文件
  • MyBatis通过注解配置执行SQL语句原理源码分析
  • sls日志服务采集json格式日志
  • HE-Drive:Human-Like End-to-End Driving with Vision Language Models
  • [蓝桥杯算法从小白到大牛]动态规划第二讲:三步问题
  • RK3568 Android12跳过认证 预置谷歌服务GMS
  • 【系统架构设计师】高分论文:论高并发下的高可用性技术
  • 未来已来:AI编程——重塑软件开发的新纪元
  • (十四)JavaWeb后端开发——MyBatis
  • 怎么查看navicat的数据库密码
  • 国家宠物美容师职业技能等级评价(高级)理论考试题
  • ac8257 android 9 lk upgrade升级后分区表错误问题
  • ​Java面试经典 150 题.P13. 罗马数字转整数(012)​
  • 为什么要学习 Java 编程
  • 人工智能技术:未来生活的“魔法师”
  • NewStar CTF 2024 misc WP
  • 基于SSD模型的路面坑洼检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】
  • 502 Bad Gateway 错误详解:从表现推测原因,逐步排查直至解决
  • Vue 2 + JavaScript + vue-count-to 集成案例
  • Ubuntu系统如何实现键盘按键映射到其他按键(以 Ctrl+c 映射到 F3,Ctrl+v 映射到 F4 为例)
  • python传递json参数给php
  • Git 的分支管理