TyepScript学习


前提

JS缺陷

(1)变量频繁变换类型,类型不明确难以维护

TS定义

(1)定义
    以JavaScript为基础构建的语音,一个JavaScript的超集,扩展js添加了类型,
可以在任何支持js的平台中执行 #TS不能被JS解析器(浏览器)直接执行,需要将TS编译为JS

TS开发环境搭建

(1)使用npm 全局安装typeScript
		npm i -g typescripts
        tsc -v //查看版本
(2)创建ts文件
(3)使用tsc对ts文件进行编译
  		tsc xxx.ts
(4)tsc --init //生成tsconfig.json配置文件 可指定编译js的版本
        
#注意 tsc运行ts文件报错系统禁止允许脚本
	`解决方案`:
    (1)使用管理员身份打开powershell 输入指令 set-ExecutionPolicy RemoteSigned 命令 选择Y或者A
    (2)get-ExecutionPolicy 命令--- 执行策略已被更改为 RemoteSigned

类型

基本类型

类型声明为小写

  • 类型声明

    • 通过类型声明指定TS变量(参数,形参)的类型

    • 声明类型后,变量只能使用声明类型的值

    • 语法

      let 变量:类型;
      let 变量:类型=值;
      function fn(参数:类型,参数:类型):类型{
          ... //第三个‘类型’为返回值的类型
      }
      eg:
      let a: number; //声明变量为number类型
      let b: string;//声明变量为number类型
      let c: boolean; //声明变量为boolean类型
      	let c=true ;//ts自动判断为布尔类型  
      
      function sum(a:number,b:number) : number{//(1)声明形参为number类型,(2)返回值为number
          return a+b;
      }
      sum(a=123,b=456)
      
  • 自动类型判断

    • TS拥有类型判断机制
    • 变量的声明和赋值同时进行时,TS编译器会自动判断变量的类型
  • 类型

    类型 案例 描述
    number 1, -2, 3.5 数字
    string 'hello' 字符串
    boolean true 布尔
    字面量 其本身
    any * 任意类型
    void 空值 空类型
    never 没有值 不能是任意值
    object {name:lht} js对象
    array [1,2,3] js数组
    tuple [4,5] 元素,固定长度数组
    enum enum(a,b) 枚举,ts新增类型
    unkown * 类型安全的any

新增ES6新特性

配置选项

开发工具