美文网首页
TypeSrcipt一起学习(一)

TypeSrcipt一起学习(一)

作者: 感觉不错哦 | 来源:发表于2018-11-12 10:31 被阅读87次
Node.js之父瑞安达尔(Ryan Dahl)发布新的开源项目 deno,从官方介绍来看,可以认为它是下一代 Node,使用 Go 语言代替 C++ 重新编写跨平台底层内核驱动,上层仍然使用 V8 引擎,最终提供一个安全的 TypeScript 运行时。

甚至Dahl在公开场合表示Node.js已经无力回天,Deno将是他的代替品。我相信前端小伙伴们一定都听说了这个消息。

Deno开始使用后用TypeScript变成了一个必会的技能,但是很多小伙伴们还不太熟悉TypeScript的用法。其实TypeScript现在用的已经很广泛了,无论你使用ng、React还是Vue都可以使用TypeScript来实现的你JavaScript代码。
TypeScript是什么?

TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集,TypeScript 在 JavaScript 的基础上添加了可选的静态类型和基于类的面向对象编程。

其实TypeScript就是相当于JavaScript的增强版,但是最后运行时还要编译成JavaScript。TypeScript最大的目的是让程序员更具创造性,提高生产力,它将极大增强JavaScript编写应用的开发和调试环节,让JavaScript能够方便用于编写大型应用和进行多人协作

TypeScript和JavaScript的对比

TypeScript 与JavaScript两者的特性对比,主要表现为以下几点:

TypeScript是一个应用程序级的JavaScript开发语言。(这也表示TypeScript比较牛逼,可以开发大型应用,或者说更适合开发大型应用)

TypeScript是JavaScript的超集,可以编译成纯JavaScript。这个和我们CSS离的Less或者Sass是很像的,我们用更好的代码编写方式来进行编写,最后还是有好生成原生的JavaScript语言。

TypeScript跨浏览器、跨操作系统、跨主机、且开源。由于最后他编译成了JavaScript所以只要能运行JS的地方,都可以运行我们写的程序,设置在node.js里。

TypeScript始于JavaScript,终于JavaScript。遵循JavaScript的语法和语义,所以对于我们前端从业者来说,学习前来得心应手,并没有太大的难度。

TypeScript可以重用JavaScript代码,调用流行的JavaScript库。

TypeScript提供了类、模块和接口,更易于构建组件和维护。

仅仅是测试版,一旦上线相信是很恐怖的,让我们一起来学习TS吧

不管之后deno有什么发展,TypeScript已经支持多方运用,node vue ng react都可以使用TS,因此学习TS将很有必要

接下来我们一起来学习TypeScrpt(在此之前先安装node.js)

npm install typescript -g小写

安装好之后输入 tsc --version(tsc -v) 查看是否出现了版本号

在写ts之前我们 进行一下package.json生成 npm init -y 生成tsconfig.json文件 tsc --init用来之后的配置使用,可以通过读取它来设置TypeScript编译器的编译参数。

生成好之后我们安装一个插件,安装@types/node,使用npm install @types/node --dev-save进行安装。这个主要是解决模块的声明文件问题

安装好之后可以看package是否安装上了

接下来我们编写万能的Hello World 看看环境是否完成

注意后缀是ts

小伙伴可以复制我下方的内容

    var a:string = "HelloWorld"
    console.log(a)

语法我们暂时先无视!!我们都知道浏览器解析编译的还是js,那ts如何转换js呢,使用命令 tsc xxx.ts
我们这里 tsc helloWodlr.ts 就会生成一个js文件,我们最终运行的还是js

如果是使用vscode编辑器的小伙伴可以使用gui操作


点击终端打开运行生成任务,然后选择tsc:构建-tsconfig.json,这时候就会生成一个helloWorld.js文件
里面的内容当然是js啦

此时我们的环境已经搭建完成,接下去我们看看实际操作

Typescript中的数据类型,相当于js多了几项类型

Undefined :
Number:数值类型;
string : 字符串类型;
Boolean: 布尔类型;
enum:枚举类型;
any : 任意类型,一个牛X的类型;
void:空类型;
Array : 数组类型;
Tuple : 元祖类型;
Null :空类型。

Undefined类型

在js中当你定义了一个变量,但没有给他赋予任何值的时候,他就是Undefined类型。这可能和你以前学的语言稍有不同,其他语言会有个类型的默认值

在ts中编写以下代码 (其实这段代码已经报错了,不过我们主要看效果,编译成js之后 我们看看效果)

  var age:number
 console.log(age)
这就是我们ts声明变量的正确写法,相对js可能稍微有点麻烦
var age:number =21
console.log(age)

Number类型

在TypeScript中,所有的数字都是Number类型,这不分是整数还是小数。比如下面我们声明一个年龄是18岁,身高是178.5厘米。

var age:number = 18
var stature:number = 178.5
console.log(age)
console.log(stature)

我给大家复制一下编译后的js代码

"use strict";
// var age:number =21
// console.log(age)
var age = 18;
var stature = 178.5;
console.log(age);
console.log(stature);

所以TS 相对js而且 数据类型更为严谨

在TypeScrip中有几种特殊的Number类型 我们需要额外注意一下:

NaN:它是Not a Number 的简写,意思就是不是一个数值。如果一个计算结果或者函数的返回值本应该是数值,但是由于种种原因,他不是数字。出现这种状况不会报错,而是把它的结果看成了NaN。(这就好比我们去泰国外,找了一个大长腿、瓜子脸、水蛇腰的女神。房也开好了,澡也洗完了,发现跟我们的性别统一,我们只能吃个哑巴亏,你绝不会声张)
Infinity :正无穷大。
-Infinity:负无穷大。

string类型

由单引号或者双引号括起来的一串字符就是字符串。这个跟js还是类似的

var TS:string = "typescript"
console.log(TS)

转换之后就会node运行一下就会乖乖的输出typescript

boolean布尔类型

作任何业务逻辑判断都要有布尔类型的参与,通过对与错的判断是最直观的逻辑处理。boolean类型只有两种值,true和false。
(简单的例子就不演示了,小伙伴可以自行测试一下)

var b:boolean = true
var c:boolean = false

enum 类型

这个世界有很多值是多个并且是固定的,比如:
世界上人的类型:男人、女人、中性
一年的季节:春、夏、秋、冬 ,有四个结果。
这种变量的结果是固定的几个数据时,就是我们使用枚举类型的最好时机:

我们来看看用法
enum REN{ nan , nv ,yao}
console.log(REN.yao)  //返回了2,这是索引index,跟数组很像。

如果我们想给这些枚举赋值,可以直接使用=,来进行赋值。

    enum REN{
        nan = '男',
        nv = '女',
        yao= '妖'
    }
    console.log(REN.yao)  //返回了妖 这个字

这里怕小伙伴跟js对象申明有误差,可以对比一下

    var obj={
        nan :'男',
        nv : '女',
        yao: '妖'
    }

any类型

一个写惯了前端的人,有时候不自觉的就分不清类型了。这是个不好的习惯,也是前端的痛,就因为这个原因,JavaScript也多次被人诟病说大型项目不适合用JavaScript。但是习惯一旦养成,改是需要时间和磨练的。TypeScript友好的为我们提供了一种特殊的类型any,比如我们在程序中不断变化着类型,又不想让程序报错,这时候就可以使用any了。

    var t:any =10 
    t = "typescript"
    t = true
    console.log(t)

这里编译了任意类型,布尔类型覆盖了字符串类型

Null类型:

与 Undefined 类似,都代表空。Null 代表是引用类型为空。意义不大,但是有用。后续学习中会使用到。

TS的特点就是数据的强类型,当然不用强类型不会报错,因为被默认为any了,所以还是建议小伙伴学会声明类型的操作

注意:剩余的数组、元组、void 我们以后再讲,慢慢来,转换有点不习惯的

相关文章

  • TypeSrcipt一起学习(一)

    Node.js之父瑞安达尔(Ryan Dahl)发布新的开源项目 deno,从官方介绍来看,可以认为它是下一代 N...

  • TypeSrcipt一起学习(二)

    之前我们学习了TypeScript的数据类型,我们来看看TS中是如何声明函数的 我们先看看js中的函数声明 fun...

  • TypeSrcipt一起学习(三)

    今天我们来学习ts中的引用类型-数组 最近公司有点忙 很久没更新了 抱歉 初识引用类型 通过上面的案例,我们看到引...

  • typesrcipt react项目实践小结

    安装 首先全局安装typescript模块。 安装react和reactDom依赖 安装ts-loader web...

  • 一起学习

    今天开会又一次强调读书的重要性,发动孩子多读书,上个学期的阅读计划顺利完成,这个学期时间有点短,预设让孩子再...

  • 一起学习

    今天虽然加班!但是还是拖着疲惫的身体跟孩子一起读了一会拼读!写了一会作业!不过值得庆幸的是,儿子最愁的人的声调,竟...

  • 一起学习

    今天下班回到家,正好家里人准备要吃饭,看到女儿在看电视,我就问她,一帆,写作业了吗,她回答还没有,我就说先吃饭吧,...

  • 一起学习

    2017.8.17昨晚犹豫一点事,晚上和老公出去,回家太晚就没传亲子日记,今天闺女和好同学一起学习,还不错,一起学...

  • 一起学习

    今天妈妈和我一起学习。我们学习了读书和做算数题!做数学题很有趣!读书也很棒!我喜欢和妈妈一起快乐的学习!

  • 一起学习

    时光飞逝,日月如梭,不知不觉中女儿已经是三年级的学生了,这其中有欢乐有酸楚,最头疼的就是陪她写作业了,那真是...

网友评论

      本文标题:TypeSrcipt一起学习(一)

      本文链接:https://www.haomeiwen.com/subject/dtlqfqtx.html