TypeScript零基础入门之背景介绍和环境安装

news2024/11/20 18:24:54

一、什么是TypeScript

TypeScript是一种由微软开发和维护的开源编程语言。它是JavaScript的超集,意味着任何JavaScript程序都是一种有效的TypeScript程序。TypeScript添加了静态类型、类、接口、枚举和命名空间等概念,同时支持ES6特性TypeScript被视为是JavaScript增强版,它可以在代码编辑器等开发工具中提供更好的代码提示和类型检查,从而减少错误提高开发效率。同时,TypeScript也可以编译成JavaScript,可以在任何支持JavaScript的环境中运行。

TypeScript 的产生背景是因为 JavaScript 本身存在一些不足之处,例如其动态特性导致了错误的类型转换和难以调试、代码重构和管理困难等问题。TypeScript 通过在 JavaScript 的基础上增加静态类型、类、接口、泛型、命名空间等功能来解决这些问题。这些功能使得TypeScript代码更加清晰易懂,减少了开发和维护的难度,同时也提高了代码的可靠性和可维护性。

TypeScript 的出现和开源化,大大提升了 JavaScript 生态圈的发展,支持了许多前端框架和库的开发,如Angular、React、Vue等。同时,TypeScript 也为客户端和服务器端开发提供了更好的工具支持,如VSCode等编辑器,更好地帮助开发者进行开发和调试。

二、Typescript和javaScript相比有哪些优势

优势TypeScriptJavaScript
类型检查具有静态类型检查没有静态类型检查
开发效率具有类型提示没有类型提示
维护性代码可读性更高代码可读性较低
可读性代码可读性更高代码可读性较低
可调试性可提供更好的错误信息错误信息较少
可维护性易于重构和维护较难重构和维护
语法学习曲线较陡较平
类型兼容性具有较好的类型兼容性缺乏类型兼容性

三、示例TypeScript的优势

使用TypeScript相比于JavaScript可以提前规避以下问题:

1. 类型错误

类型错误是JavaScript中最常见的错误之一。TypeScript通过提供静态类型检查,可以在编译时发现类型错误,从而防止在运行时出现类型错误。

function add(a: number, b: number) {
  return a + b;
}

add(1, '2'); // Type 'string' is not assignable to type 'number'.

2. 缺少属性或方法

在JavaScript中,对象的属性和方法可以随时添加、删除和修改。但是,这也会导致代码中出现缺少属性或方法的错误。使用TypeScript可以在编译时检查对象的属性和方法是否存在,从而避免这些错误。

interface Person {
  name: string;
  age: number;
}

const person: Person = {
  name: 'Alice'
};

console.log(person.age); // Property 'age' does not exist on type 'Person'.

3. 非空类型

在JavaScript中,变量可以没有值或者为null或undefined。这种情况可能会在运行时导致错误。在TypeScript中,可以使用非空类型表示变量不能为空,从而避免这种错误。

let name: string;

console.log(name.length); // TypeError: Cannot read property 'length' of undefined

let name2: string | null;

console.log(name2.length); // TypeError: Cannot read property 'length' of null

let name3: string;

console.log(name3.length); // Cannot assign type undefined to type string.

4. 函数参数和返回值类型

JavaScript是一种动态类型语言,函数的参数和返回值类型可以不进行指定。这也就意味着,当我们设计一个库给别人使用的时候,我们难以确定别人在调用我们的函数时使用了正确的参数类型和返回值类型。这种情况下会导致难以追踪的bug。

function add(a: number, b: number): number {
  return a + b;
}

add('1', 2); // Argument of type 'string' is not assignable to parameter of type 'number'.

四、用TypeScript开发需要的环境和工具

前端开发中使用Typescript需要以下环境和工具:

  1. Node.js环境:Typescript需要在Node.js环境中编译运行,因此需要先安装Node.js。

  2. TypeScript编译器:Typescript需要使用TypeScript编译器将TypeScript代码转换为JavaScript代码。可以通过npm安装TypeScript编译器。

  3. 编辑器或IDE:可以使用任何支持TypeScript语法的编辑器或IDE来开发TypeScript应用程序。比较常用的编辑器包括VS Code、WebStorm等。

  4. Build工具:开发TypeScript应用需要使用Build工具来管理依赖、编译、打包等操作。可以使用Webpack、Parcel等Build工具来构建TypeScript应用。

配置环境

1. node.js的安装

这里简单介绍一下node的安装步骤,就不附图了,很简单,去官网下载之后,根据提示下一步就行了,如果是windows系统的小伙伴,我建议大家使用nvm管理node版本,这样可以很方便的切换node版本。
下面这篇文章中详细介绍了nvm的下载和安装,以及如何管理和使用node,感兴趣的小伙伴可以看看
nvm的下载和安装

1.打开node.js官方网站(https://nodejs.org),在首页点击下载按钮。
在这里插入图片描述

2.根据您的操作系统选择对应的安装包。如果您的操作系统是Windows,则需要下载Windows Installer(.msi)。

3.下载完成后,运行安装包,并按照提示进行安装。

4.在“Welcome to the Node.js Setup Wizard”界面上,点击“Next”。

5.然后需要接受End-User License Agreement,接受后“Next”。

6.在“Custom Setup”界面上,选择默认安装位置,然后“Next”。

7.在“Select Components”界面上,除非您需要自定义,否则选择默认配置并“Next”。

8.在“Advanced Installation Options”界面上,如果您需要将node js及其环境变量添加到PATH中(这是一种快速访问的方式),请选中“Add to PATH”选项,并点击“Install”按钮。

9.等待程序安装完成,然后点击“Finish”来完成安装。

现在您已经成功地安装了node.js。要确认是否正确安装,请在Windows命令提示符中输入node -v,并在屏幕上显示版本号。
在这里插入图片描述

2. TypeScript编译器的安装和使用

以下是使用TypeScript编译器的详细步骤:

  1. 安装Node.js:TypeScript编译器是使用Node.js编写的,因此需要先安装Node.js。可以到Node.js的官网上下载对应自己系统的安装包。

  2. 安装TypeScript编译器:使用npm命令行工具安装TypeScript,命令如下:

npm install -g typescript

这里安装的是全局的TypeScript编译器,这样就可以在任何地方使用TypeScript编译器。

  1. 编写TypeScript代码:在任意文本编辑器中编写TypeScript代码,保存为.ts文件。

例如:

function greeter(person: string) {
    return "Hello, " + person;
}

let user = "Jane User";

document.body.innerHTML = greeter(user);
  1. 编译TypeScript代码:在命令行中进入.ts文件所在的目录中,执行如下命令,将.ts文件编译成.js文件:
tsc <filename>.ts

例如:

tsc hello.ts

这样就会在当前目录下生成一个hello.js文件。

  1. 在浏览器中运行:将生成的js文件引入到html文件中,然后在浏览器中打开html文件即可。

例如:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>TypeScript</title>
        <script src="hello.js"></script>
    </head>
    <body>
    </body>
</html>

这样就可以在浏览器中看到输出"Hello, Jane User"的结果。

3. Vscode的安装和使用

安装和使用VSCode的步骤如下:

  1. 首先需要下载VSCode的安装文件。你可以在官方网站(https://code.visualstudio.com/)上下载不同操作系统版本的文件。
    在这里插入图片描述

  2. 安装VSCode。运行下载的文件,并按照提示完成安装过程。

  3. 打开VSCode。在Windows平台上,你可以在开始菜单中找到VSCode的快捷方式。在MacOS上,你可以在应用程序中找到VSCode的图标,并点击打开它。
    在这里插入图片描述

  4. 进入VSCode的用户界面。一旦你成功打开了VSCode,你将看到VSCode的初始界面。在该界面中,你可以打开一个新的文件夹或是直接开始编写代码。
    在这里插入图片描述

在这里插入图片描述

  1. 运行代码。为了运行代码,你需要先写好代码,并保存该文件。之后,你可以按下F5键,或在侧边栏上选择Debug选项并点击“开始调试”以启动调试器。
    在这里插入图片描述7. 安装插件。如果你需要使用某个特定语言的开发环境,那么你还需要安装相应的插件。你可以在VSCode插件市场中查找、下载和安装这些插件。
    在这里插入图片描述

4. webpack和parcel等构建工具的介绍

1. 构建工具诞生的背景

随着前端技术的不断发展,项目的复杂度和规模也越来越大,需要更高效的管理和构建工具来满足开发需求。在早期,前端项目通常采用手工打包、压缩、合并等方式来实现构建,这样的方式效率低下且容易出错。因此,出现了一系列前端构建工具,如Grunt、Gulp等。

然而,这些工具在实际使用中还存在一些问题。例如,Grunt中配置较为繁琐,Gulp中使用流式操作存在较高的学习曲线,且即使是使用这些工具也需要频繁更改配置文件等,较为繁琐。因此,新一代前端构建工具,如Webpack、Parcel等应运而生,它们具有更好的性能、更简单的配置和更好的扩展性等优点,能够更好地满足前端开发的需要。同时,这些工具也能够快速地适应不断更新的技术栈和工具链,具有更好的可维护性。

2. 使用构建工具的好处
  1. 模块化管理:构建工具提供了模块化管理的功能,可以将整个项目拆分成独立的模块进行开发和管理。这样可以提高代码的复用性和可维护性。

  2. 自动化构建:使用构建工具可以自动化地完成代码的编译、打包、压缩等一系列操作。这样可以提高开发效率,减少人工操作的错误。

  3. 跨平台支持:构建工具不仅支持浏览器端的开发,还可以支持服务器端、移动端等各种环境的开发。这样可以为开发者提供更好的跨平台支持。

  4. 支持预处理器:构建工具支持各种预处理器,如sass、less、babel等,使得开发者可以更加便捷地进行开发。

  5. 优化性能:构建工具可以对代码进行压缩、混淆、懒加载等优化操作,从而提高页面的加载速度和性能。

3. webpack的使用介绍

使用webpack构建一个前端项目,需要了解的配置还是很多的,感兴趣的朋友可以看看我的另一个专栏
webpack从入门到原理

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

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

相关文章

Flutter 初探原生混合开发

转载请注明出处&#xff1a;https://blog.csdn.net/kong_gu_you_lan/article/details/131320733?spm1001.2014.3001.5501 本文出自 容华谢后的博客 0.写在前面 现如今跨平台技术被越来越多的开发者提起和应用&#xff0c;从最早的Java到后来的RN、Weex&#xff0c;到现在的Co…

每日学术速递6.11

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Video-ChatGPT: Towards Detailed Video Understanding via Large Vision and Language Model 标题&#xff1a;Video-ChatGPT&#xff1a;通过大型视觉和语言模型实现详细的视频理…

SCI论文插图怎么做?有这一篇文章就够了

SCI插图的整体要求 SCI杂志种类很多&#xff0c;对插图的要求也各有不同&#xff0c;但是以下几条是通用的&#xff1a; 1. 插图尺寸要符合SCI期刊要求 2. 同篇文稿插图中文字须统一字号及字体 3. 须提交SCI期刊指定文件类型的插图 4. 插图文件命名须符合SCI期…

C++基础(15)——STL常用算法(遍历和查找)

前言 本文介绍了C中STL常用遍历和查找算法。 9.1&#xff1a;常用遍历算法&#xff08;for_each、transform&#xff09; 9.1.1&#xff1a;foreach for_each&#xff1a;遍历容器&#xff0c;transform&#xff1a;搬运一个容器中的数据到另一个容器中 for_each中使用普通…

自建iOS消息推送服务Bark

老苏的 DSM6.17 系统恢复之后&#xff0c;发现丢了一些套件&#xff0c;在安装 phpMyAdmin 套件时&#xff0c;显示需要用到 PHP7.4 但是在套件里搜索却只有 PHP7.3 从 https://archive.synology.cn/download/Package/PHP7.4 下载了最低的 7.4.9-0003 手动安装时居然显示 DSM6.…

Java进程调度的基本过程(详细易理解)

目录 一.什么是进程? 二.进程是如何创建的 三.进程如何调度的 优先级: 状态: 记账信息: 上下文: 线程是什么: 为什么要有线程: 坏处: 一.什么是进程? 了解这个问题之前,我们需要先打开我们桌面上的的学习资料 啪的一下,很快啊,点双击学习资料.exe之后,在后台(ctrl…

spring security oauth2 整合 JWT

前言 在这个基础上&#xff0c;进行整合。 spring security oauth2学习 -- 快速入门_本郡主是喵的博客-CSDN博客 1.jwt的一般使用 先把 reids,common-pools 等依赖删掉。 删掉redis的下相关配置 1.1 导入依赖 <!--jjwt--><dependency><groupId>io.json…

正则表达式(2)

文章目录 正则表达式一.正则表达式1.含义2.通配符2.1通配符含义作用2.2常见的通配符 3.元字符&#xff08;字符匹配&#xff09;4.表示次数5.位置锚定6.分组或其他 二.扩展正则表达式1.表示次数2.举例 正则表达式 一.正则表达式 1.含义 &#xff08;1&#xff09;是一种特殊…

基于Java智慧城市实验室主页系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…

一、枚举类型——常量特定方法

Java 的枚举机制可以通过为每个枚举实例编写不同的方法&#xff0c;来赋予它们不同的行为。要实现这一点&#xff0c;你可以在枚举类型中定义一个或多个抽象方法&#xff0c;然后为每个枚举实例编写不同的实现&#xff0c;例如&#xff1a; ConstantSpecificMethod.java import…

使用 TensorFlow.js 将机器学习引入您的 Web 应用程序

如何使用 TensorFlow.js 在您的 Web 应用程序中实施机器学习 原文作者: Abhay Singh Rathore 机器学习 (ML) 不再是一个崇高、遥不可及的概念。借助 TensorFlow.js 等库&#xff0c;开发人员现在可以将 ML 整合到他们的 Web 应用程序中。例如&#xff0c;您可以创建一个系统&am…

革新智造业丨云和恩墨数据智能产品 zAIoT 将工控设备KPI分析性能提升百倍

点击关注 随着智能制造业的迅猛发展&#xff0c;工控设备在生产过程中起到至关重要的作用。为了确保生产效率和产品质量的提高&#xff0c;企业需要对工控设备进行全面的分析和评估。 工控设备KPI是指在生产线/车间设备的运行和维护过程中&#xff0c;需要监控的关键指标参数&a…

Vue----Vue的模板语法

【原文链接】Vue----Vue的模板语法 Vue 模板语法的描述 Vue使用一种基于HTML的模板语法&#xff0c;使我们能够声明式地将其组件实例的数据绑定到呈现的DOM上&#xff0c;所有的Vue模板都是语法层面合法的HTML&#xff0c;可以被符合规范的浏览器和HTML解析器解析 文本插值 …

Java性能权威指南-总结16

Java性能权威指南-总结16 线程与同步的性能线程池与ThreadPoolExecutor设置最大线程数设置最小线程数 线程与同步的性能 能够轻松编写多线程程序也是Java的一个标志性特征。Java性能方面的吸引力显而易见&#xff1a;如果有两个CPU可用&#xff0c;那么一个应用能够完成的工作…

计算机网络笔记(更新中)

本文是个人笔记&#xff0c;都是概念&#xff0c;没基础不建议看。 绪论 计算机网络的定义 最简单的定义&#xff1a;计算机网络是一些互相连接的、自治的计算机的集合因特网&#xff08;Internet&#xff09;是“网络的网络” 计算机网络的组成&#xff08;物理组成&#x…

STM32单片机(七)ADC模拟数字转换器----第一节:ADC模数转换器

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

autoDL上A100运行wiki出错:NVIDIA A100-PCIE-40GB(最后安装好torch+dgl了);学校服务器加2.X版本pytorch

1、A100运行wiki出错&#xff1a;NVIDIA A100-PCIE-40GB with CUDA capability sm_80 is not compatible with the current PyTorch installation. The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_70. If you want to use the NVIDIA A100-PCIE…

CTFshow-pwn入门-pwn26-pwn28

什么是ASLR 大多数的攻击都基于这样一个前提&#xff0c;即攻击者知道程序的内存布局&#xff0c;需要提前知道shellcode或者其他一些数据的位置。因此&#xff0c;引入内存布局的随机化能够有效增加漏洞利用的难度&#xff0c;其中一种技术就是ASLR&#xff08;Address Space…

Qt颜色、文件、字体对话框

项目目录 界面 一、颜色对话框 QColor color QColorDialog::getColor(QColor(255,0,0));qDebug()<<"r"<<color.red()<<" g "<<color.green()<<" b "<<color.blue(); 二、文件对话框 //文件对话框QString…

《网络安全0-100》-网络攻击方式

网络攻击方式 DoS DDoS攻击 DoS攻击和DDoS攻击都是网络攻击的一种&#xff0c;它们的区别如下&#xff1a; DoS攻击(Denial of Service&#xff0c;拒绝服务攻击)&#xff1a;指攻击者通过向目标计算机或网络发送大量的合法请求&#xff0c;占用其网络资源和带宽&#xff0c;…