Typescript基础
本文最后更新于:2023年10月23日 晚上
介绍
typescript 是 javascript 的一个超集,typescript 可以运行于任何系统,并且是开源免费的。
typescript 有以下几个特点
- typescript 会在编译时对代码进行严格的静态类型检查,可以在编码阶段就发现问题,而不是在上线运行时才发现
- typeScript 语法遵循 ES 规范,更细速度快,不断支持最新的 ECMAScript 新特性,如装饰器、public/private 修饰符
- typescript 支持 OOP(面向对象)的接口,抽象类,多态特性
- typescript 可以为 IDE 提供更好的代码补全、接口提示、跳转到定义
安装环境
node
首先需要安装 node.js (opens new window)我相信做前端的都已经安装了
全局安装 TS
执行以下命令安装 typescript
1 |
|
mac 系统也可以执行
1 |
|
安装后执行以下命令检查是否安装成功
1 |
|
项目安装 TS
除了全局安装外,也可以在项目中独立安装 typescript,这可以限定项目使用的 typescript 版本
1 |
|
安装 typescript
1 |
|
查看版本
1 |
|
编译 TS
使用 tsc 命令可以将 ts 文件编译为 js 文件,如果在编译过程中有 ts 错误将在命令行报出
1 |
|
动态监听
1 |
|
常见问题
windows
如果在 windows 系统中执行 tsc 命令报以下错误
需要以管理员身份执行 powerShell,然后执行以下命令,在出现的提示选择 Y
1 |
|
配置文件
初始化
执行以下命令创建配置项
1 |
|
然后执行以下命令使用配置项的定义进行监测
1 |
|
也可以使用 vscode 终端 > 运行任务 >typescript
菜单运行监视
配置选项
配置 | 说明 |
---|---|
noImplicitAny | 禁止使用隐含的 any 类型,如函数参数没有设置具体类型 |
strictNullChecks | 开启时不否允许将 null、undefined 赋值给其他类型比如字符串 |
target | 转换成 JS 的版本 |
strict | 是否严格模式执行 |
module | 使用的模块系统 |
代码注释
单行注释
单行注释使用双斜线“//”来表示,并且不允许换行。
1 |
|
多行注释
1 |
|
多行注释以“/”符号作为开始并以“/”符号作为结束。正如其名,多行注释允许换行。
区域注释
区域注释不是一种新的注释语法,它借助单行注释的语法实现了定义代码折叠区域的功能
//#region
定义了代码折叠区域的起始位置,//#endregion
定义了代码折叠区域的结束位置
1 |
|
数据类型
字符串
字符串使用 string 来声明
1 |
|
数值
在 TS 中不区分整数与浮点数,都使用 number 来声明
1 |
|
数组
数组值类型为字符串
1 |
|
使用泛型来声明数组
1 |
|
元组
明确数组每个成员值类型的数组为元组
1 |
|
对象
声明对象类型但不限制值类型
1 |
|
限定对象值类型
1 |
|
后面跟上?
用来指定 url 为可选值,这样的属性是非必填项
1 |
|
any
使用 any 指包含所有值的顶部类型,所以 any 不进行类型检查,等于关闭了 TS 对该变量的严格类型校验
- 使用 any 类型等同于使用纯 JavaScript 的开发方式
- any 类型是顶部类型,所有其他类型是他的子类型
- 使用 any 类型将失去 typescript 静态类型的强制检测
- 只有在描述一个根本不知道的类型时使用 any