typescript - 如何从打字稿中的其他类导入函数
问题描述
我想将另一个类(由名称字符串决定,例如 B)导入当前类(名为 A)。B类中的函数需要调用A类中的函数。我想知道如何实现。
// index.ts
function importAll(obj, src){
for (var key in src) obj[key] = src[key];
return obj;
};
class A{
function_a(){
console.log("A_test");
}
call_function_b()
{
let classtype="./Bclass";
// dynamicly import class B
let B = require(classtype);
let object_b= new B();
// want to import all function from class B to class A
// like importAll(this, object_b);
}
}
export let test =new A();
test.call_function_b();
//file Bclass.ts
export class B{
function_b() {
console.log("B_test");
}
function_use_a()
{
// function in class B need to call function in class A
this.function_a();
}
}
解决方案
我想你正在寻找A extends B
.
在类声明或类表达式中使用extends
关键字来创建一个类,该类是另一个类的子类。
class B {
b_func() {
console.log('b func');
}
}
class A extends B {
a_func() {
console.log('a func');
}
}
const a = new A();
a.b_func();
推荐阅读
- java - “dev”配置覆盖 Quarkus 中的“test”配置
- ios - Delphi iOs如何检测挂机
- npm - 如何使用 webpack 配置复制 npm 依赖项
- azure - 在 Azure 上的资源组之间移动后删除 microsoft.web/certificates
- java - 调用 glUniformMatrix4fv() 会导致段错误
- angular - emptyMessage 属性不显示
- java - 使用 Java 注释配置的 Spring Security 配置错误
- javascript - 如何通过 forEach 方法使用多个节点列表
- linux - nftables 配置命令失败,操作不支持
- vue.js - Laravel mix - 更改编号 js 文件的输出目录