热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【TypeScript】零基础入门,轻松玩转TypeScript编程

前言小伙伴们大家好。从今天开始我们将从

前言

小伙伴们大家好。从今天开始我们将从零开始系统的学习一些TypeScript相关的知识。相信小伙伴们或多或少应该也都听说过这玩意了,那么这家伙是干嘛的呢,已经有Javascript了为什么又要搞出个TypeScript,接下来就为大家一一揭晓。

TypeScript

TypeScript是个啥,它跟Javascript又有啥区别?

  • TypeScript是由微软团队开发的一种开源、自由的编程语言。
  • TypeScript是Javascript的一个超集,支持ES6的所有标准。
  • TypeScript是一种能给Javascript添加特性的扩展语言。
  • TypeScript的设计一般是针对开发大型应用或者大型开发团队。因为它能够让你的代码更规范,类型更明确,维护更方便。尤其是多人合作开发一个功能模块,或者是封装一套公共的组件库时效果尤为显著。
  • TypeScript最后可以编译成Javascript,然后在各种浏览器上运行。
  • TypeScript扩展了Javascript的语法,因此Javascript和TypeScript可以共同工作,并且TypeScript能够完全识别Javascript的代码。
  • TypeScript的适用场景:TypeScript的设计一般是针对开发大型应用或者大型开发团队。因为它能够让你的代码更规范,类型更明确,维护更方便。尤其是多人合作开发一个功能模块,或者是封装一套公共的组件库时效果尤为显著。
  • 另外个人理解:TypeScript更类似于后端的强类型语言(如Java),因为它可以在声明变量时指定类型,可以指定函数是否有返回值以及返回值的类型,还可以定义类、枚举、泛型,接口等等。

说了这么多理论还是不便于大家理解,TypesScript到底是个啥玩意,下面我们就先从它的使用开始一边coding一边学习把。

TypeScript安装

要想使用TypeScript首先得先把它安装在我们的环境中,然后才能够使用。TypeScript的安装也是非常简单的,只需要在命令行中运行:npm install typescript -g 即可将其安装在我们的全局环境中。那么安装完成后还需要看下是否安装成功,同样在命令行中运行:tsc -v 如果输出了版本号则表示对应版本号的TypeScript已经安装成功。

npm install typescript -g
## 安装完成后查看是否成功
tsc -v
# 输出:"对应的版本"

TypeScript语法及与Javascript的区别

TypeScript的语法跟Javascript的是一样的:

  • 用var、let或const声明定义一个变量/常量
  • 用function个定义一个函数
  • 用class声明一个类
  • 用new来创建一个对象
  • 支持if/else判断条件
  • 支持for/for…of/for…in/while循环
  • 用console.log在控制台打印数据
  • 用//进行单行注释,用/**/多行注释等等

但与JS不同的是:

  • TS在声明变量时可以同时限定变量的类型,而JS是在赋值时才能够确定变量的数据类型
  • TS在定义函数时可以同时指定函数的参数类型,返回值及返回值类型,而JS的参数类型是函数调用时才能够确定,返回值类型则是由return决定

下面我们用代码来演示一下:

TypeScript 声明变量的语法: var/let/const 变量名:类型 = 值

//声明一个指定类型的变量/常量
let hello: string = "Hello TS";
var world:number = 3
const ts:boolean = true

TypeScript 定义函数的语法:

  • function 函数名(参数:类型):返回值类型
  • let/var/const 函数名:类型 = function(参数:类型):返回值类型

//定义一个参数为string类型,返回值为number类型的函数hello
function hello(name:string):number{
console.log(`hello:${name}`);
return 100;//必须有且是数字类型,否则报错
}
let num:number = hello('Yannis');//参数必须是字符串,否则报错
console.log(num);//输出100
//声明一个Function类型的变量helloWorld,值为一个:参数类型为number返回值类型为string的函数
let helloWorld:Function = function(num:number):string{
console.log(num);
return 'hello world';//必须有且是字符串类型,否则报错
}
console.log(typeof helloWorld);// function
let hw:string = helloWorld(10);//10
console.log(hw);// hello world

TypeScript的编译运行

要想查看TypeScript的运行结果,需要先通过 tsc 将TypeScript编译成Javascript然后通过node或浏览器来查看运行结果。
编译命令: tsc 文件名 ,运行后即可生成一个同名的Javascript文件
上述ts代码在通过tsc命令编译出的js文件内容如下:

//声明一个指定类型的变量/常量
var hello= "Hello TS";
var world= 3
var ts= true
//定义一个参数为string类型,返回值为number类型的函数hello
function hello(name){
console.log(`hello:${name}`);
return 100;//必须有且是数字类型,否则报错
}
var num= hello('Yannis');//参数必须是字符串,否则报错
console.log(num);//输出100
//声明一个Function类型的变量helloWorld,值为一个:参数类型为number返回值类型为string的函数
var helloWorld= function(num){
console.log(num);
return 'hello world';//必须有且是字符串类型,否则报错
}
console.log(typeof helloWorld);// function
var hw= helloWorld(10);// 10
console.log(hw);// hello world

关于tsc

上面已经提到:要想查看typescript的运行结果,首先得通过 tsc 命令将其编译成js文件,然后通过node或浏览器查看。这个tsc就是typescript编译器的缩写。它是在typescript安装时随之一起被安装的,因此我们无需再额外进行安装直接可以使用。tsc有入下几个常用命令参数:

  • –help:显示帮助信息
  • –module:载入扩展模块
  • –declaration:额外生成一个.d.ts扩展名的文件
  • –removeComments:删除文件中的注释
  • –out:编译多个文件合并到一个文件中
  • –sourcemap:生成一个sourcemap(.map)文件
  • –module noImplicitAny在表达式或声明上有隐含安逸类型时报错。也就是说不允许使用any类型
  • –watch:在监视模式下运行编译器,会监视文件输出;也就是说在文件发生改变时会自动重新编译(个人感觉是最常用的一个)

以上参数可叠加使用,如:tsc xxx.ts --watch --removeComments

总结

本文我们学习了typescript的相关知识,通过学习我们了解了什么是ts,什么场景下适合使用ts,ts与js的区别,ts的简单语法与基本使用,ts的编译以及tsc的常用参数。本篇文章就先分享到这里,从下篇文章开始将按照typescript的知识块进行拆分学习与分享。

本文就到这里了,喜欢的小伙伴关于点赞留言加关注哦!


推荐阅读
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
author-avatar
weijun520
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有