介绍:
-
typescript是javascript类型的超集,在任何使用javascript的开发场景中都可以使用ts
-
typeScript是一种类型语法的javaScript语言
浏览器不支持Ts,需要编译成Js才能使用
Ts是Js的超集,支持了js语法并扩展了类型语法
let age:number = 20
有明确的类型 指定age为number类型
为什么使用Ts,有什么优势?
- 更早发现错误,提高了开发效率
- 随时随地提示,提高了开发体验
- 强大的类型系统,维护代码方便
- 类型推断机制
TypeScript编译
全局安装
npm i -g typescript
or
year global add typescript
检测
tsc -v
编译步骤:
- 新建一个hello.ts文件
- 当前目录打开命令行窗口 执行tsc hello.ts命令,同级目录生成hello.js文件
我们每次都要手动编译吗? 不需要 webpack vite工具自动构建编译
创建项目
创建一个基于ts的vue项目
npm 6.x
npm create vite@latest my-use-ts-app --template vue-ts
npm 7.x
npm create vite@latest my-use-ts-app-- --template vue-ts
year create vite@latest my-use-ts-app-- --template vue-ts
核心
类型
类型注解(变量后面约定类型的语法) 约定类型,明确提示
//约定变量age的类型为number
let age:number = 23
age = 23
:number 是类型注解,为变量提供类型约束
约定了什么类型,就只能给该变量赋值什么类型的值,否则就会报错
约定类型后,代码提示也非常清晰
Ts常用的类型
Js已有的类型
简单类型 number string boolean null undefined symbol
复杂类型 object array function Reg正则
Ts新增类型
联合类型 自定义类型 接口 元组 字面量类型 枚举 void any 泛型 等
1.数组类型
第一种写法(推荐):
第二种写法:
2.联合类型----> 将多个类型合并在一起
类型与类型使用|连接,代表类型可以是他们当中的其中一个,这种类型是联合类型
案例:给一个定时器id加类型
类型别名(给类型取名字)
let arr:(number | string)[]=[1,2,'3',4,'5']
type Name = (number | string)[]
let arr2:Name=[1,2,'3','4']
- type类型别名=具体类型 基本语法
- 定义类型别名,遵循大驼峰命名规范,首字母大写
- 使用场景:当同一种类型被多次使用时,可以通过类型别名,简化该类型使用
3.函数类型
- 给函数指定类型,其实就是给参数和返回值指定类型,有两种
- 在函数基础上分别指定参数和返回值的类型
4.void类型
注意:再js中,如果没有返回值,默认返回undefined
但是void和undefined在ts中并不是一回事
如果指定返回值类型是undefined 返回值必须是undefined
可选参数
如果函数的参数,可以传可以不传,这种情况就可以使用可选参数的语法 后面加?
**注意**:必选参数不能位于可选参数的后面
5.对象类型
Ts的对象类型,就是描述对象中的属性,方法的类型,对象是由属性和方法组成的