TypeScript
刀刀
9/6/2023
0 字
0 分钟
介绍
typescript 是 javascript 的一个超集,typescript 可以运行于任何系统,并且是开源免费的。
typescript 有以下几个特点
- typescript 会在编译时对代码进行严格的静态类型检查,可以在编码阶段就发现问题,而不是在上线运行时才发现
- typeScript 语法遵循 ES 规范,更细速度快,不断支持最新的 ECMAScript 新特性,如装饰器、public/private 修饰符
- typescript 支持 OOP(面向对象)的接口,抽象类,多态特性
- typescript 可以为 IDE 提供更好的代码补全、接口提示、跳转到定义
- 还有重要一点是众多科技公司已经采用 typeScript 进行开发,也是前端工程师需要掌握的就业技能
安装环境
下面来安装学习 typescript 时的开发环境
node
首先需要安装 node.js (opens new window)我相信做前端的都已经安装了
全局安装 TS
然后执行以下命令安装 typescript
npm install -g typescript
如果你使用的是 mac 系统也可以执行
brew install typescript
如果是 linux 系统可以通过相应的软件管理命令安装,比如以下是 manjaro 的安装示例
sudo pacman -Sy typescript
安装后执行以下命令检查是否安装成功
tsc -v
//如果显示以下内容即表示安装成功
// Version 4.2.4
项目安装 TS
除了全局安装外,也可以在项目中独立安装 typescript,这可以限定项目使用的 typescript 版本
yarn init -y
安装 typescript
yarn add -D typescript
查看版本
yarn tsc -v
编辑器
.ts 是 typescript 的扩展名,在首次使用 vscode 编写.ts 文件时,vscode 会自动下载支持 typescript 的插件环境
关闭 JS 的检验
默认在编写普通.js 文件时,vscode 也会进行类型校验,这有时不需要
编译 TS
我们使用 tsc 命令可以将 ts 文件编译为 js 文件,如果在编译过程中有 ts 错误将在命令行报出
tsc test.ts //会编译生成 test.js 文件
每次修改 ts 文件后再执行命令编译会过于繁琐,可以执行以下命令自动监听 ts 文件内容并自动生成 js 文件
tsc test.ts -w
include
需要编译的文件路径,设置如下所示:
{
"include": ["./src/xx/x"]
}
上方配置表示在 src 文件夹下的 任意文件夹下的 ts 文件都会被编译。
exclude
需要编译的文件路径,设置如下所示:
{
"include": ["./src/xx/x"],
"exclude": ["./src/hello/x"]
}
上方配置表示在 src 文件夹下的 任意文件夹,除了 hello 文件夹下的 ts 文件都会被编译。
compilerOptions
编译器的选项,有以下几个属性:
- target:TS 编译为 ES 的版本
- module:指定要使用的模块化规范(commonjs、amd、system、umd、es6,none)
- lib:指定项目中用到的库
- outDir:指定编译后文件所在的目录
- outFile:将代码合并为一个文件
- allowJs:是否对 hs 文件进行编译,默认为 false
- checkJs:是否检测 js 代码是否符合规范,默认为 false
- removeComments:是否移除注释
- noEmit:不生成编译后的文件
- noEmitOnError:当有错误时不生成编译后的文件
- strict:所有严格模式总开关,为 true 下面四个都开启
- alwaysStrict:设置编译后的文件是否使用严格模式,默认为 false(最新版本默认为 true)
- noImplicitAny:不允许出现隐式 any
- noImplicitThis:不允许出现不明确类型的 this(不允许指向 window)
- strictNullChecks:严格的检查空值
{
"include": ["./src/xx/x"],
"exclude": ["./src/hello/x"],
"compilerOptions": {
"target": "ES6",
"module": "ES6",
"lib": ["ES6", "dom"],
"outDir": "./dist",
"outFile": "./dist/app.js",
"allowJs": true,
"checkJs": true,
"removeComments": true,
"noEmit": false,
"noEmitOnError": true,
"alwaysStrict": true,
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true
}
}
常见问题
windows
如果在 windows 系统中执行 tsc 命令报以下错误
... 因为在此系统上禁止运行脚本 ...
需要以管理员身份执行 powerShell,然后执行以下命令,在出现的提示选择 Y
set-ExecutionPolicy RemoteSigned