微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

TypeScript学习笔记——TypeScrip的环境准备、简介、数据类型

TypeScript

1、学习准备

  • 运行环境:

    ​ Node:https://nodejs.org/zh-cn/,下载安装

    检验安装成功:

    //cmd命令行输入:
    node -v
    //返回对应版本号则表示安装成功
    

    报错处理:(检查环境变量)

    • 在保证已经安装好的情况下,在 控制面板——高级设置——环境变量——path当中检查

      如果没有配置则新建——将对应的安装路径的bin目录地址复制添加环境变量

  • TypeScript安装:

    在cmd当中(以管理员身份打开):

    安装

    npm install -g typescript
    

    检验是否安装成功:输入 tsc,得到:即表示安装成功

    在这里插入图片描述

  • 使用

    1. 文件夹中,新建后缀名为.ts的文件,里面写ts的代码
    2. 在命令行工具中,进入文件夹地址,输入命令 tsc + 文件

2、Ts简介

typeScrip是JavaScript的一个超集,支持Es6的标准。

由微软开发的,开源的编程语言,弥补了js的一些本身的缺陷和不足。

ts的设计目标是开发大型应用,可以编译成为纯Js,并且运行在任何的浏览器当中

语言特性:

  • 类型批注和编译时类型检查
  • 类型推断
  • 类型擦除
  • 接口
  • 枚举,元组
  • Minxin
  • 泛型编程
  • 名字空间
  • Await

3、TS的数据类型

Es6的七种数据类型

  • number——数字类型
  • String——字符串类型
  • Array——数组类型
  • Object——对象类型
  • null
  • undefined
  • Symbol

Ts的数据类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在这里插入图片描述

Ts的变量声明:

//对类型有严格约束,当前或后期赋值都必须保证两侧的数据类型一致
let [变量]:[类型声明] = 值
//eg:
let b:number ;    // 认undefined

数字类型:

let b:number ;  

字符串类型:

let a:string = "hello world"

布尔类型:

let flag:boolean = true    

元组类型(new*)

元组类型表示一个已知****元素数量和类型数组,各元素的类型不必相同

let c:[object,string,number,boolean]  
//元组类型,赋值时左右的顺序,和数量都必须完全保持一致

枚举类型enmu

enum类型是对JavaScript标准数据类型的一个补充。像C#等其它语言一样,使用枚举类型可以为一组数值赋予变量名称

enum Color {Red = 1,Green,Blue} 
//结果{ '0': 'Red', '1': 'Green', '2': 'Blue', Red: 1, Green: 2, Blue: 3 }
//相当于(实际上是一种映射的关系,可以按名找他的值,也可以按照他的值来找他的名,)
var Color;
(function (Color) {
    Color[Color["Red"] = 1] = "Red";
    Color[Color["Green"] = 2] = "Green";
    Color[Color["Blue"] = 3] = "Blue";
})(Color || (Color = {}));

注意点:

  • enum类型依次会从0给元素赋予编号(其他看时时示例理解)

    enum Color {Red = 1,Green,Blue} 
    //结果{ '0': 'Red', '1': 'Green', '2': 'Blue', Red: 1, Green: 2, Blue: 3 }
    
    enum Color {Red ,Green = 3,Blue}
    //结果{ '0': 'Red', '3': 'Green', '4': 'Blue', Red: 1, Green: 3, Blue: 4 }
    
    enum Color{red,blue='kk',green} //报错,枚举成员必须具有初始化表达式
    enum Color{red,blue='kk',green=124} //正确
    //结果{ '0': 'red', '124': 'Blue', red: 0, blue: 'kk', green: 124 }
    
  • enum类型的值里面不能设置为一个对象,或者利用变量间接的引用对象值

    enum Color1{red,blue='kk',green={name:'zxc'}}
    //报错,含字符串值成员的枚举中不允许使用计算值
    //对象类型的数据——》字符串——》Object Object]
    

任意类型any

不会被类型检查器报错,可以设置自己想要的类型值(null,undefined,number…)

let n:any = 4 
//可以赋值
n = 'jerry'

常见应用:

  • 用在不知道传入什么类型的值(比如来自一些动态内容的)

  • 函数参数的返回值(经常是不可预判的,可以用any类型)

    function fn(a:String):any{
    	return 'abc...'
    }
    

无类型void

  • void更像是一种中间类型,定义后就只能传入null或者undefined
  • null/undefined类型(认情况下他们是任意类型的子类型)
let cc:void = undefined
// 只能给他赋值null/undefined类型(认情况下他们是任意类型的子类型)
let e:number = null

never类型

never——表示永久不存在的值的类型

// never类型是任意类型的子类型(包括any...),never没有子类型,没有可以赋值给never类型的
//应用1:抛出错误的返回值
function ERROR(err:string):never {   
  throw new Error(err);
}
function fail():void {   
  throw ERROR("出现错误");
}

//应用2:无线死循环
function loop():never {   
  while (true){
    console.log("next");
  }
}

类型断言

  • 尖括号语法(没有运行时的影响,只在编译时有影响)

    let value:any = "string"
    let len:number = (<string>value).length
    
  • as语法

    let value1:any = "string"
    let len1:number = (value1 as string).length
    

数组类型对象类型,作为一个变量进行申明

let y:Array<String>; //声明类型是Array,内部元素都是String

let z:Object;
z = {name:'123'}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐