JavaScript 的超集 TypeScript

2023-12-13 12:08
文章标签 java script typescript 超集

本文主要是介绍JavaScript 的超集 TypeScript,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

TypeScript概述

TypeScript是一门基于JavaScript基础之上的语言。 很多时候也说TypeScript是JavaScript的超集(扩展集)。它是一门完整的编程语言。

 所谓超集,就是在JavaScript的基础之上多了一些扩展特性,多出来的就是一套更强大的类型系统,以及对ECMAScript的新特性的支持。它最终会被编译为原始的JavaScript。

也就是说,使用TypeScript后,就可以使用TypeScript的新特性,以及它更强大的类型系统。

完成开发后,再将代码编译成能够在生产环境中直接运行的JS代码。

使用TypeScript的优势:

1.类型系统的优势跟flow类似,帮我们避免在开发过程当中有可能会出现的类型异常。提高编码的效率,以及代码的可靠程度。

2.支持ES6的新特性;还支持转换新特性向低版本ECMAScript兼容(类似与babel),最低可以编译为ES3的版本。

3.TypeScript可以编译成标准的JavaScript,任何一种JavaScript运行环境下的应用程序(浏览器、node、react Native、electron),都可以使用TypeScript去开发。

4.生态健全完善,特别是在开发工具这块。

目前很多大型开源项目都已经使用TypeScript去开发,

  • angular2 的开发语言
  • vue3.0会使用TypeScript取代flow
  • TypeScript慢慢的已经成为前端领域的第二语言。

缺点:

1.语言本身多了很多概念,提高了学习成本(接口,泛型,枚举等等)

2.对于周期短的小型项目,TypeScript可能会增加一些开发成本。 因为项目初期可能回去编写很多的类型声明,比如对象,函数会有很多的类型声明需要去单独编写。(对于大项目而言这些成本不算什么,而且很多时候是一劳永逸的)。

 

不过TypeScript是渐进式的,即便对TypeScript不了解,也可以按照JavaScript标准语法去编写TypeScript代码,可以把它当作JavaScript去写,学习中了解到一点就用一点。

总的来说,前端这个行业再往后发展,TypeScript应该是一门必要的一门语言了。

TypeScript快速上手

安装:TypeScript是npm模块,先构建一个新项目,然后安装TypeScript到项目中:

yarn init --yes

把TypeScript 作为项目的开发依赖去安装

yarn add typescript --dev

安装好后可以看到node_modules文件夹的bin目录下多出一个tsc的命令,它的作用就是编译TypeScript 代码。

编译:

现在就可以使用TypeScript编写代码,不过我们还没有了解任何TypeScript的语法,没关系,因为TypeScript是基于JavaScript之上的。所以完全可以按照JavaScript语法去编码,而且它支持最新的ECMAScript标准。

在项目根目录下创建01-started.ts文件,这个文件里面的代码是简单的ES6语法的JavaScript代码,并没有特殊的用法,尝试用TypeScript去编译一下:

const hello = name => {console.log(`hello,${name}`)
};
hello('TypeAcript')

命令行终端执行: 

 yarn tsc 01-started.ts

完成后可以发现项目根目录下多了一个同名的js文件。可以发现我们编写的ES6标准的代码被转换成了ES3标准的代码:

更强大的类型系统:

除了编译转换ES的新特性,TypeScript更重要的是为我们提供了更强大的类型系统。

跟flow的用法十分类似。

回到01.started.ts文件,这里限制函数name参数的类型为string类型,可以在name后面跟上:string这样一个类型注解

const hello = (name : string) => {console.log(`hello,${name}`)
};
hello(999)    //这里会报出语法错误
//但是依旧可以编译完成。如果要在报错的时候终止 js 文件的生成,可以在 tsconfig.json 中配置 noEmitOnError 即可

此时调用时传入了number,再次去编译就会报出语法错误。

而且vscode默认就会对TypeScript语法做出类型检测,不用等到编译,在编辑器中就可以直接看到错误提示。

在命令行终端执行编译:执行tsc编译文件的过程会报出错误

把传入的参数改为字符串的类型数据,执行tsc编译后可以看到,之前添加的类型注解也被移除掉了:

总结一下使用TypeScript的基本过程:

1.安装TypeScript模块。可以安装到全局,也可以安装到本地;

2.这个模块提高了tsc命令,去编译TypeScript文件;

3.编译过程中,回去检查我们代码中的类型使用异常,移除类型注解的一些Ts扩展语法;

4.编译过程中还会自动去转换ES的新特性。

 

TypeScript配置文件

tsc命令不仅可以去编译指定的某个ts文件,就还可以用来编译整个项目或整个工程。不过在编译之前会先给项目创建一个TypeScrip的配置文件。

这里可以使用TypeScrip的命令自动生成配置文件。

yarn tsc --init

完成后再项目的根目录下就可以看到tsconfig.json文件。 

注意:用tsc 执行指定的ts文件时tsconfig.json文件不会生效,直接tsc整个项目的时候配置文件才会自动生效。

这篇关于JavaScript 的超集 TypeScript的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/488409

相关文章

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

SpringBoot操作spark处理hdfs文件的操作方法

《SpringBoot操作spark处理hdfs文件的操作方法》本文介绍了如何使用SpringBoot操作Spark处理HDFS文件,包括导入依赖、配置Spark信息、编写Controller和Ser... 目录SpringBoot操作spark处理hdfs文件1、导入依赖2、配置spark信息3、cont

springboot整合 xxl-job及使用步骤

《springboot整合xxl-job及使用步骤》XXL-JOB是一个分布式任务调度平台,用于解决分布式系统中的任务调度和管理问题,文章详细介绍了XXL-JOB的架构,包括调度中心、执行器和Web... 目录一、xxl-job是什么二、使用步骤1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功

Java中的密码加密方式

《Java中的密码加密方式》文章介绍了Java中使用MD5算法对密码进行加密的方法,以及如何通过加盐和多重加密来提高密码的安全性,MD5是一种不可逆的哈希算法,适合用于存储密码,因为其输出的摘要长度固... 目录Java的密码加密方式密码加密一般的应用方式是总结Java的密码加密方式密码加密【这里采用的

Java中ArrayList的8种浅拷贝方式示例代码

《Java中ArrayList的8种浅拷贝方式示例代码》:本文主要介绍Java中ArrayList的8种浅拷贝方式的相关资料,讲解了Java中ArrayList的浅拷贝概念,并详细分享了八种实现浅... 目录引言什么是浅拷贝?ArrayList 浅拷贝的重要性方法一:使用构造函数方法二:使用 addAll(

解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题

《解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题》本文主要讲述了在使用MyBatis和MyBatis-Plus时遇到的绑定异常... 目录myBATis-plus-boot-starpythonter与mybatis-spring-b