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

相关文章

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

Java.lang.InterruptedException被中止异常的原因及解决方案

《Java.lang.InterruptedException被中止异常的原因及解决方案》Java.lang.InterruptedException是线程被中断时抛出的异常,用于协作停止执行,常见于... 目录报错问题报错原因解决方法Java.lang.InterruptedException 是 Jav