Typescript
中文:
TypeScript中文网 · TypeScript——JavaScript的超集
TypeScript
是JavaScript
类型的超集他可以编译成纯JavaScript
type-script
├─.gitignore
├─package-lock.json
├─package.json
├─tsconfig.json
├─webpack.config.js
├─src
| └index.ts
基于案例
编写一段ts
的代码:
class Greeter {
constructor(message: string) {
this.greeting = message;
}
greeting: string;
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);
配置对ts
文件的编译:
const path = require("path");
module.exports = {
mode: "production",
entry: "./src/index.ts",
output: {
filename: "[name].js",
path: path.resolve(__dirname, "dist")
},
module: {
// 使用 ts-loader
rules: [{
test: /\.ts/,
use: "ts-loader",
exclude: /node_modules/
}]
}
}
wbepack
的配置文件使用了ts-loader
所以需要我们安装一下:
$ npm install ts-loader typescript -D
到现在仍然不能打包typeScript
,因为还需要对typeScript
进行额外的配置:
React & Webpack · TypeScript中文网 · TypeScript——JavaScript的超集
新增TS
的配置文件:
{
"compilerOpitions": {
// 输出的路径(不写也可以)
"outDir": "./dist",
// 采用ESModule引入的方式
"module": "es6",
// 将 typescript 代码转换为 es5 的写法
"target": "es5",
// 容许typescript引入js文件
"allowJs": true
}
}
引入第三方库
假设我们的代码想要引入第三方的代码库比如loadsh
,为了支持loadsh
的语法提示我们还需要安装一个@types/lodash
:
$ npm install @types/lodash -S
import _ from "loadsh";
class Greeter {
constructor(message: string) {
this.greeting = message;
}
greeting: string;
greet() {
return _.join(["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);
现在如果_.join()
不传入参数typescript
就会提示错误!!!
假设我们现在引入jquery
也别忘了安装@types/jquery
,那么我知道哪些库可以安装对应的typescript
语法支持呢?我们可以到 TypeSearch 进行搜索,如何搜到的话就可以安装@types/库名
。