Typescript中的模块和继承

Posted 公众号_前端每日技巧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Typescript中的模块和继承相关的知识,希望对你有一定的参考价值。

Typescript中的模块和继承_构造函数

模块

ts也只是ES Module规范定义模块。并且允许我们在代码中,通过module关键字定义内部的模块

此时模块内部的信息是隐秘的,想使用,必须在模块内部通过export关键字将其暴露出来

ts中的模块是通过闭包实现的。

举例:

// 定义模块
module Ickt
// 使用什么数据,就要通过export关键字,将其暴露出来
export let color = red;
// ts是es6语法的超集,因此es6语法,ts也支持的,例如箭头函数等
export function add(num1:number, num2:number):number
return num1 + num2;


console.log(Ickt.color)
console.log(Ickt.add(10, 20))

继承

es6中有继承,通过extends关键字定义,

ts也支持,我们也可以通过extends关键字实现继承

当我们的子类继承父类后,我们可以属性,方法,甚至是构造函数,但是重写构造函数的时候,一定要通过super关键字实现构造函数式继承

super方法传递的参数,将在父类构造函数执行的时候使用。

super一定要在最前面执行

ES6中的ES Module规范就是出自于ts,所以我们也可以在ts中使用ES Module规范

在webpack中,省略引入文件的拓展名,配置extensions。

ts中的继承是一个寄生组合式的继承。

举例:

// 引入book类
import Book from ./04;
// 定义tsbook子类
class TsBook extends Book
// 静态属性
static year:number = 2021;
// 重写属性
color: string;
// 重写构造函数
constructor(title:string, page:number, color)
// 构造函数继承
super(title, page);
// 子类中,存储数据,要在构造函数式继承之后存储
this.color = color;

// 重写方法
getColor():string
return this.color.toUpperCase()


// 实例化子类
var zss = new TsBook(设计模式, 25, green)
console.log(zss)
console.log(TsBook.year)
console.log(TsBook.writer)

以上是关于Typescript中的模块和继承的主要内容,如果未能解决你的问题,请参考以下文章

面向对象的理解

TypeScript入门学习之路

Typescript中的类

TypeScript对于Duck类型和模块命名空间的应用实战

从 Typescript 项目中的外部文件继承并声明放大生成的类型

如何正确继承 Typescript 中的父组件?