0%

TypeScript介绍

Typescript 介绍

  • TypeScript 是由微软开发的一款开源的编程语言。
  • TypeScript 是 Javascript 的超集,遵循最新的 ES6、Es5 规范。TypeScript 扩展了 JavaScript的语法。

Typescript 安装 编译

1
2
npm install -g typescript
tsc helloworld.ts

VSCode 配置

汉化

打开VSCode之后在编辑器左侧找到这个拓展按钮,点击,然后在搜索框内搜索关键字”Chinese”。直接点击install安装,安装完成后重启VSCode即可。

编辑器配置

TypeScript相关插件

TSLint(deprecated),通过tslint.json配置,对你的写TypeScript代码风格进行检查和提示的插件。

TSLint Vue,如果你使用TypeScript开发Vue项目,而且要使用TSLint对代码质量进行把控,那你应该需要这个插件。

框架相关

如果你使用Vue进行项目开发,那Vue相关的插件也是需要的,比如Vue 2 Snippets

Vetur插件是Vue的开发辅助工具,安装它之后会得到代码高亮、输入辅助等功能。

提升开发体验

Auto Close Tag插件会自动帮你补充HTML闭合标签,比如你输完

Auto Rename Tag插件会在你修改HTML标签名的时候,自动帮你把它对应的闭标签同时修改掉;

Bracket Pair Colorizer插件会将你的括号一对一对地用颜色进行区分,这样你就不会被多层嵌套的括号搞晕了,来看看它的样子;

Guides插件能够帮你在代码缩进的地方用竖线展示出索引对应的位置,而且点击代码,它还会将统一代码块范围的代码用统一颜色竖线标出;

基于 VSCode 搭建 Typescript 开发环境

初始化项目

新建一个文件夹“test”,作为项目根目录,进入这个文件夹:

1
2
mkdir test
cd test

安装TypeScript

全局安装typescript:

1
npm install typescript -g

进入项目根目录,生成typescript配置文件;在项目根目录多了一个 tsconfig.json 文件:

1
tsc --init

因为我们要搭配使用webpack进行编译和本地开发,所以要在项目里安装一下typescript:

1
npm install typescript

配置TSLint

全局安装TSLint:

1
npm install tslint  -g

进入项目根目录,生成 tslint 配置文件;在项目根目录多了一个 tslint.json 文件:

1
tslint -i

tslint.json 文件

1
2
3
4
5
6
7
8
9
{
"defaultSeverity": "error",
"extends": [
"tslint:recommended"
],
"jsRules": {},
"rules": {},
"rulesDirectory": []
}
  • defaultSeverity:是提醒级别,如果为error则会报错,如果为warning则会警告,如果设为off则关闭,那TSLint就关闭了;
  • extends:可指定继承指定的预设配置规则;
  • jsRules“用来配置对.js和.jsx文件的校验,配置规则的方法和下面的rules一样;
  • rules”是重点了,我们要让TSLint根据怎样的规则来检查代码,都是在这个里面配置,比如当我们不允许代码中使用eval方法时,就要在这里配置”no-eval”: true;
  • rulesDirectory:可以指定规则配置文件,这里指定相对路径。

你可以参照TSLint配置说明了解他们的用途。如果你想要查看某条规则的配置及详情,可以参照TSLint规则说明

配置webpack

安装 webpack、webpack-cli 和 webpack-dev-server,:

1
npm install webpack webpack-cli webpack-dev-server -D

安装cross-env,并且后面跟着一个参数 NODE_ENV=development,这个用来在 webpack.config.js 里通过 process.env.NODE_ENV 来获取当前是开发还是生产环境:

1
npm install cross-env

webpack.config.js配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
const HtmlWebpackPlugin = require("html-webpack-plugin");
const { CleanWebpackPlugin } = require("clean-webpack-plugin");

module.exports = {
// 指定入口文件
// 这里我们在src文件夹下创建一个index.ts
entry: "./src/index.ts",
// 指定输出文件名
output: {
filename: "main.js"
},
resolve: {
// 自动解析一下拓展,当我们要引入src/index.ts的时候,只需要写src/index即可
// 后面我们讲TS模块解析的时候,写src也可以
extensions: [".tsx", ".ts", ".js"]
},
module: {
// 配置以.ts/.tsx结尾的文件都用ts-loader解析
// 这里我们用到ts-loader,所以要安装一下
// npm install ts-loader -D
rules: [
{
test: /\.tsx?$/,
use: "ts-loader",
exclude: /node_modules/
}
]
},
// 指定编译后是否生成source-map,这里判断如果是生产打包环境则不生产source-map
devtool: process.env.NODE_ENV === "production" ? false : "inline-source-map",
// 这里使用webpack-dev-server,进行本地开发调试
devServer: {
contentBase: "./dist",
stats: "errors-only",
compress: false,
host: "localhost",
port: 8089
},
// 这里用到两个插件,所以首先我们要记着安装
// npm install html-webpack-plugin clean-webpack-plugin -D
plugins: [
// 这里在编译之前先删除dist文件夹
new CleanWebpackPlugin({
cleanOnceBeforeBuildPatterns: ["./dist"]
}),
// 这里我们指定编译需要用模板,模板文件是./src/template/index.html,所以接下来我们要创建一个index.html文件
new HtmlWebpackPlugin({
template: "./src/template/index.html"
})
]
};

构建指令

1
2
3
4
5
6
7
{
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "cross-env NODE_ENV=development webpack-dev-server --mode=development --config ./build/webpack.config.js",
"build": "cross-env NODE_ENV=production webpack --mode=production --config ./build/webpack.config.js"
}
}

index.html 模板

1
2
3
4
5
6
7
8
9
10
11
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>TS-Learning</title>
</head>

<body></body>
</html>

index.ts 脚本

1
2
3
4
5
6
// index.ts
let a: number = 123;

const h1 = document.createElement("h1");
h1.innerHTML = "Hello, I am Lison";
document.body.appendChild(h1);
-------------本文结束感谢您的阅读-------------