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