简述
这里是学习TypeScript相关的笔记。原本是两个大章节,我按照当时的学习时段将其分成了五个章节,分别放在以下几篇文章中,以天数作为章节命名。
这里是学习TypeScript相关的笔记。原本是两个大章节,我按照当时的学习时段将其分成了五个章节,分别放在以下几篇文章中,以天数作为章节命名。
接口的作用类似于抽象类,接口与抽象类的不同点在于: 接口中的所有方法和属性都是没有实值的,换句话说接口中的所有方法都是抽象方法。接口主要负责定义一个类的结构,也就是属性与方法。接口可以去限制一个对象的接口,对象只有包含接口中定义的所有属性和方法时才能匹配接口。同时,可以让一个类去实现接口,实现接口时类中要保护接口中的所有属性。
示例(检查对象类型):
interface Person{
name: string;
sayHello():void;
}
function fn(per: Person){
per.sayHello();
}
fn({
name:'孙悟空',
sayHello() {
console.log(`Hello, 我是 ${this.name}`)
}
});
示例(实现)
interface Person{
name: string;
sayHello():void;
}
class Student implements Person{
constructor(public name: string) {
}
sayHello() {
console.log('大家好,我是'+this.name);
}
}
注意: interface
是可以重复写的,但在类实现接口时会编译器将两个同名接口的结构合并
面向对象是程序中一个非常重要的思想,面向对象很简单,简而言之就是:程序之中所有的操作都需要通过对象来完成。
一切操作都要通过对象,这就是所谓的面向对象,那么对象到底是什么呢?这就要先说到程序是什么,计算机程序的本质就是对现实事物的抽象,抽象的反义词是具体,比如:照片是对一个具体的人的抽象,汽车模型是对具体汽车的抽象等等。程序也是对事物的抽象,一个事物到了程序中就变成了一个对象。
通常情况下,实际开发中我们都需要使用构建工具对代码进行打包,TS同样也可以结合构建工具一起使用,下边以webpack为例介绍一下如何结合构建工具使用TS。
步骤:
初始化项目
npm init -y
下载构建工具
npm i -D webpack webpack-cli webpack-dev-server typescript ts-loader clean-webpack-plugin
根目录下创建webpack的配置文件webpack.config.js
const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
module.exports = {
optimization:{
minimize: false // 关闭代码压缩,可选
},
entry: "./src/index.ts",
devtool: "inline-source-map",
devServer: {
contentBase: './dist'
},
output: {
path: path.resolve(__dirname, "dist"),
filename: "bundle.js",
environment: {
arrowFunction: false // 关闭webpack的箭头函数,可选
}
},
resolve: {
extensions: [".ts", ".js"]
},
module: {
rules: [
{
test: /\.ts$/,
use: {
loader: "ts-loader"
},
exclude: /node_modules/
}
]
},
plugins: [
new CleanWebpackPlugin(),
new HtmlWebpackPlugin({
title:'TS测试'
}),
]
}
根目录下创建tsconfig.json,配置可以根据自己需要
{
"compilerOptions": {
"target": "ES2015",
"module": "ES2015",
"strict": true
}
}
修改package.json添加如下配置
{
...
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack",
"start": "webpack serve --open chrome.exe"
},
...
}
在src下创建ts文件,并在并命令行执行npm run build
对代码进行编译,或者执行npm start
来启动开发服务器
在编译某个ts文件时,在文件名之后使用 -w 指令后,TS编译器会启动监测模式自动监视文件的变化,并在文件发生变化时对文件进行重新编译。(有点像vue-cli 里面 npm run serve 启动服务一样的监测方式)
示例:
tsc xxx.ts -w