美文网首页
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一起学习(一)

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