TypeScript学习(一):快速入门

文章目录

  • 一、TypeScript 简介
    • 1、TypeScript 是什么?
    • 2、TypeScript 与 JavaScript 的区别
    • 3、JavaScript 的缺点
    • 4、为什么使用 TypeScript
  • 二、TypeScript 开发环境搭建
    • 1、下载Node.js
    • 2、安装Node.js
    • 3、使用npm全局安装TypeScript
    • 4、创建一个ts文件
    • 5、使用tsc对ts文件进行编译

一、TypeScript 简介

1、TypeScript 是什么?

TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。
在这里插入图片描述

  • 是添加了类型系统的 JavaScript,适用于任何规模的项目。
  • 是一门静态类型、弱类型的语言。
  • 完全兼容 JavaScript,且不会修改 JavaScript 运行时的特性。
  • 可以编译为 JavaScript,然后运行在浏览器、Node.js 等任何能运行 JavaScript 的环境中。
  • 拥有很多编译选项,类型检查的严格程度可通过配置文件决定。
  • 可以和 JavaScript 共存,这意味着 JavaScript 项目能够渐进式的迁移到 TypeScript。
  • 增强了编辑器(IDE)的功能,提供了代码补全、接口提示、跳转到定义、代码重构等能力。
  • 拥有活跃的社区,大多数常用的第三方库都提供了类型声明,并且开源免费

下图显示了 TypeScript 与 JavaScript、 ES5、ES2015 和 ES2016 之间的关系:

在这里插入图片描述

意思是:JavaScript 和 ES 有的,TypeScirpt都有!

2、TypeScript 与 JavaScript 的区别

在这里插入图片描述

3、JavaScript 的缺点

首先JavaScript 是一门非常灵活的编程语言:

它没有类型约束,一个变量可能初始化时是字符串,又被赋值为数字。
由于隐式类型转换的存在,有些变量的类型很难在运行前就确定。
基于原型的面向对象编程,使得原型上的属性或方法可以在运行时被修改。
TypeScript 的类型系统,在很大程度上弥补了 JavaScript 的缺点

4、为什么使用 TypeScript

一般来说,在大型项目中,后期维护成本比前期开发成本要多得多,所以团队规范化尤为重要,包括编码规范,方法调用规范等,而TS可以通过代码的方式,约束团队开发,这样才有利于后期维护及扩展,从而达到高效的开发

两个最重要的特性——类型系统、适用于任何规模。

优势:强大的IDE支持,支持类型检测,允许为变量指定类型,语法检测,语法提示

缺点:有一定的学习成本,需要理解 接口,泛型,类,枚举类型等前端可能不是很熟悉的知识点。

接口(Interfaces):可以用于对``对象的形状Shape`进行描述

泛型(Generics):在定义函数,接口或类时,不预先指定具体的类型,而是在使用时在指定类型的一种特性

类(Classes):定义了一件事物的抽象特点,包括属性和方法

二、TypeScript 开发环境搭建

1、下载Node.js

  • node.js官网:Node.js (nodejs.org)
    在这里插入图片描述

  • 版本号 LTS:稳定版(一般开发下载这个)

  • 版本号 Current:最新版

2、安装Node.js

在这里插入图片描述

找到下载的目录里面,打开Node.js进行无脑安装,直接下一步

怎么知道安装成功?
第一种方法:win + R 打开运行对话框,输入cmd 打开命令提示符窗口,输入node -v 回车 显示安装版本号,如以下结果即为成功!
在这里插入图片描述

第二种方法:win 搜索powerShell,打开PowerShell 也是一样的输入node -v 回车 显示版本号,即为成功!
    在这里插入图片描述
在这里插入图片描述

3、使用npm全局安装TypeScript

npm是node包管理器,通过这个可以安装node下面的各种应用与软件,下载完node.js就可以直接使用npm了

  • 进入命令行

  • 输入:npm i -g typescript
    在这里插入图片描述

  • 显示以上信息,反正没有报错就表示typescript就已经安装好了

  • 怎么查看它有没有安装好呢?输入tsc 命令回车,如果出现一堆东西那就表示安装成功了,否则就显示没有找到这条命令。

4、创建一个ts文件

在任意一个文件夹里面新建一个后缀名为.ts的文件,用记事本或随意一个文本编辑器打开文件,输入console.log(’ hello TS!');
但是网页不认识ts文件怎么办?利用我们刚刚下载好的typescript编译器,把ts文件转化为js文件
怎么转?使用tsc命令对ts文件进行编译

5、使用tsc对ts文件进行编译

在所在文件夹里面输入cmd,在这里输入cmd的好处就是 命令行所在的路径正好就是当前所在文件的路径,就不用使用命令进入了!
在这里插入图片描述

输入命令:tsc 需要编译的文件名,回车执行,虽然命令提示符窗口没有发生什么变化,但是此时此刻你会发现该文件夹里面多了一个js文件!

在这里插入图片描述

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

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

相关文章

【资料分享】全志科技T507-H评估板规格书(4核ARM Cortex-A53,主频1.416GHz)

1 评估板简介 创龙科技TLT507-EVM是一款基于全志科技T507-H处理器设计的4核ARM Cortex-A53国产工业评估板,主频高达1.416GHz,由核心板和评估底板组成。核心板CPU、ROM、RAM、电源、晶振等所有器件均采用国产工业级方案,国产化率100%。同时&a…

Nexus如何导入jar以及批量导入Maven的本地库目录

前言 本篇基于 Nexus 的版本是 nexus-3.55.0-01本方法适用Linux和WindowsWindows 需要安装Git , 使用Git Bash执行 Nexus上传依赖包的方式 上传依赖包到Nexus 服务器的方式有多种, 包含: 单个jar上传: 在Nexus管理台页面上传单个jar源码编…

Thinkphp5分页后携带参数进行跳转传递

问题: 我在tp框架中写了一个图书详情分页的,代码如下: public function verify_details(){$sell_order_numinput(sell_order_num);$resDB::table(verif)->where(["sell_order_num">$sell_order_num])->paginate(10);// 模…

(三)灌溉系统WIFI通信部分

ESP8266 ESP8266S烧录器:CH430C arduino离线配置esp8266参考:参考文章 灯光闪烁就是烧录成功 ESP8266调试入门:参考文章 ESP8266调试:参考文章 人麻了已经,尝试半天了,AT指令没回应,尝试刷固…

【自监督论文阅读 4】BYOL

文章目录 一、摘要二、引言三、相关工作四、方法4.1 BYOL的描述4.2 Intuitions on BYOL’s behavior(BYOL行为的直觉)4.3 实验细节 五、实验评估5.1 Linear evaluation on ImageNet(ImageNet上的线性评估)5.2 Semi-supervised tra…

Office远程代码执行漏洞(CVE-2017-11882)漏洞复现

Office远程代码执行漏洞(CVE-2017-11882)漏洞复现 1.漏洞原理2.在Kali平台查看漏洞利用文件3.登录目标靶机,打开FTP服务器4.登录Kali,利用FTP服务器上传payload-cale.doc文件5.登录目标靶机,触发doc文件,验…

Angular 与 PDF之五 实现方式的选择与扩展

在纯web的前提下(不考虑移动端native),PDF的功能基本包括: 客户端PDF:最简单的场景,实现方式也很多,基本不需要有什么顾虑的地方,简单的实现可以参考系列第一篇文章。客户端PDF预览&…

华为战略方法论:BLM模型之差距分析(限制版)

目录 说明 差距类型 1、业绩差距 2、机会差距 3、对标差距 专栏列表 个人简介 说明 今天就来谈谈 BLM 模型中的第一把钥匙,也就是差距分析。 从本质上来看。 BLM 模型中的差距与你在日常生活中听到或用到的差距在意义都是一样的。 不同之处就在于问题的复…

网络安全(黑客)自学

建议一:黑客七个等级 黑客,对很多人来说充满诱惑力。很多人可以发现这门领域如同任何一门领域,越深入越敬畏,知识如海洋,黑客也存在一些等级,参考知道创宇 CEO ic(世界顶级黑客团队 0x557 成员&…

java Collection集合使用笔记

1、Collection集合概述 它是单例集合的最顶层接口,它表示一组对象,这些对象也称之为Collection的元素JDK不提供此接口任何直接实现,但提供更具体的子接口(如:List和Set)实现创建Collection集合对象的方法&…

Ant Design Vue 走马灯实现单页多张图片轮播

最近的项目有个需求是,这种单页多图一次滚动一张图片的轮播效果,项目组件库是antd、vue3 然而用了antd的走马灯是这样子的 我们可以看到官网给的api是没有这种功能,百度上也多是在css上动刀,那样也就毕竟繁琐了,我们是…

测试Hyperledger Fabric环境

首先进入fabric-samples目录中的first-networked 子目录 cd fabric-samples/first-network 在first-network目录下有一个自动化脚本byfn.sh,可以使用-help参数查看相应的可 用命令,在命令提示符中输入如下命令: ./byfn.sh --help命令执行成功后&#…

力扣 106. 从中序与后序遍历序列构造二叉树

题目来源:https://leetcode.cn/problems/construct-binary-tree-from-inorder-and-postorder-traversal/description/ C题解:中序遍历是左中右,后序遍历是左右中,所以拿到两个遍历数组,我们可以从后序遍历获取中间节点…

西安石油大学期末考试C++真题解析

1、一、类型、返回值类型 二、参数表、函数重载 2、一、实例化 二、实例化的类型或类类是对象的蓝图,对象是类的实例化 3、const 4、一个 两个 5、一、公有继承 二、私有继承、保护继承 6、抽象类、实例化对象 7、函数模板、类模板 8、try、catch、throw 9、…

SpringBoot初始化接口CommandLineRunner

CommandLineRunner的使用 接口定义使用执行顺序使用 Order 注解实现Orderd接口排序总结 接口定义 Spring官方给出的接口定义 package org.springframework.boot;FunctionalInterface public interface CommandLineRunner {void run(String... args) throws Exception; }在 Sp…

Facebook如何与品牌合作,提升用户体验?

Facebook是全球最大的社交媒体平台之一,每天有数亿用户在上面发布内容、互动交流。对于品牌来说,与Facebook合作可以帮助它们扩大影响力、吸引更多潜在客户。 但是,与Facebook合作不仅仅是在平台上发布广告,还需要更深入的合作来…

如何在 Spring Boot 中使用反向代理

如何在 Spring Boot 中使用反向代理 介绍 在分布式系统中,反向代理是一项非常重要的技术。通过反向代理,可以将客户端的请求转发到后端的多台服务器上,实现负载均衡和故障转移等功能。本文将介绍如何在 Spring Boot 应用中使用反向代理。 环…

Flink DataStream之创建执行环境

新建project&#xff1a; pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://ma…

iMazing 2.16官方下载使用起来安全吗?

鉴于苹果设备的封闭性与安全性&#xff0c;我们大部分情况下都需要搭配iTunes进行设备的管理。但作为一款全方位的iOS设备管理软件&#xff0c;iMazing竟然可以突破iTunes的限制&#xff0c;与设备直接连接&#xff0c;进行备份、管理等操作。 因此&#xff0c;很多人都会有疑…

OpenStack(T版)——块存储(Cinder)服务介绍与安装

文章目录 OpenStack(T版)——块存储(Cinder)服务介绍与安装安装和配置(controller)准备(1)创建数据库(2)加载admin user的环境变量(3)创建Identity服务凭据(4)创建Cinder 块存储服务组件的API endpoint 安装和配置Cinder块存储服务组件(1)安装软件包(2)编辑/etc/cinder/cinder.…