初学typeScript

40 阅读3分钟

介绍:

官方官网:www.typescriptlang.org/

中文官网:www.tslang.cn/index.html

  • typescript是javascript类型的超集,在任何使用javascript的开发场景中都可以使用ts

  • typeScript是一种类型语法的javaScript语言

image.png

浏览器不支持Ts,需要编译成Js才能使用
TsJs的超集,支持了js语法并扩展了类型语法
let age:number = 20
有明确的类型  指定age为number类型

为什么使用Ts,有什么优势?

  1. 更早发现错误,提高了开发效率
  2. 随时随地提示,提高了开发体验
  3. 强大的类型系统,维护代码方便
  4. 类型推断机制

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.数组类型

第一种写法(推荐):
image.png

第二种写法:

image.png

2.联合类型----> 将多个类型合并在一起

类型与类型使用|连接,代表类型可以是他们当中的其中一个,这种类型是联合类型

image.png

案例:给一个定时器id加类型

image.png

类型别名(给类型取名字)

let arr:(number | string)[]=[1,2,'3',4,'5']
type Name = (number | string)[]
let arr2:Name=[1,2,'3','4']
  • type类型别名=具体类型 基本语法
  • 定义类型别名,遵循大驼峰命名规范,首字母大写
  • 使用场景:当同一种类型被多次使用时,可以通过类型别名,简化该类型使用
3.函数类型
  • 给函数指定类型,其实就是给参数和返回值指定类型,有两种
  • 在函数基础上分别指定参数和返回值的类型

image.png

4.void类型

image.png

注意:再js中,如果没有返回值,默认返回undefined
但是voidundefined在ts中并不是一回事
如果指定返回值类型是undefined 返回值必须是undefined
可选参数
如果函数的参数,可以传可以不传,这种情况就可以使用可选参数的语法 后面加?
**注意**:必选参数不能位于可选参数的后面

image.png

5.对象类型
Ts的对象类型,就是描述对象中的属性,方法的类型,对象是由属性和方法组成的

image.png

image.png