# TypeScript 打包
TypeScript 是一种由微软开发的自由和开源的编程语言。它是 javascript
的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的 面向对象编程。
今天我们就来讲一下 typescript
的打包。对于 typescript
的语法我们就不做过多的介绍了。
# 使用
# 安装
如果想要在项目中使用 typescript
我们首先就需要安装 typescript
,以及处理 typescript
相应的 ts-loader
npm install typescript ts-loader -D
# 配置
接着我们在 webpack.common.js
添加 ts-loader
的配置:
...
const commonConfig = {
...
module: {
rules: [
...
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/
},
...
]
}
...
}
...
接下来写一段 typescript
代码,我们修改入口文件 index.tsx
:
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return "Hello, " + this.greeting;
}
}
let greeter = new Greeter("world");
let button = document.createElement('button');
button.textContent = "Say Hello";
button.onclick = function() {
alert(greeter.greet());
}
document.body.appendChild(button);
我们打包一下 npm run dev
,我们会看到一个错误,告诉我们需要安装一个 tsconfig.json
文件:
我们可以手动的添加 tsconfig.json
文件,也可以通过 tsc --init
命令来创建,不过这个命令需要在全局安装一下 typescript
、或者可以使用 npx tsx --init
来自动生成。
我们手动添加一下 tsconfig.json
文件:
{
"compilerOpitons": {
"outDir": "./dist", // 打包输出的目录,不配置也没事,因为在 webpack 已经配置了
"module": "es6", // 打包的是 es6 d的代码
"target": "es5", // 打包出来的内容是 es5,在大部分浏览器红都能使用
"allowJs": true, // 允许 引入js
},
"include": ["src"], // 对 src 下的代码有效
}
我们重新打包一下 npm run dev
,我们可以在浏览器中看到一个按钮,点击弹出 hello world
,如下图:
如果我们给Greeter
传入数字 123
,
let greeter = new Greeter(123);
vs code
编辑器便会给我们提示相应的错误:
于是我们便可以快乐的开始写 typescript
代码了。
# 库使用 typescript
我们在代码中使用一下 lodash
,我们修改一下 index.tsx
,我们使用 join
方法,join
方法第一个参数需要传入一个数组。照理来说我们的编辑器应该会提示相应的错误,但是却没有提示相应的错误。
import _ from 'lodash';
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return _.join();
// return _.join(["Hello,", ' ', this.greeting], '');
}
}
let greeter = new Greeter("world");
alert(greeter.greet());
这个时候我们就需要安装 lodash
的类型文件 @types/lodash
:
npm install @types/lodash -D
然后我们修改一下 index.tsx
中的 lodash
的引入方式:
import * as _ from 'lodash';
这个时候编辑器就给我们提示了相应的错误了:
有很多库都有其对应的类型文件我们可以在 TypeSearch 进行查找:
# 相关链接
# 示例代码
示例代码可以看这里: