Class Typescript:声明函数而不实现它们

Class Typescript:声明函数而不实现它们,class,typescript,sapui5,Class,Typescript,Sapui5,是否可以声明类具有某些函数而不实现它们 我之所以需要它,是因为我创建了一个类,然后将该类传递给一个js框架,该框架添加了几个函数。我希望能够调用这些函数,而无需重新实现它们,重定向或强制执行或其他任何操作 例如: //example class class AppComponent { constructor() {} } //create class var comp: AppComponent = new AppComponent(); //hand over to framewo

是否可以声明类具有某些函数而不实现它们

我之所以需要它,是因为我创建了一个类,然后将该类传递给一个js框架,该框架添加了几个函数。我希望能够调用这些函数,而无需重新实现它们,重定向或强制执行或其他任何操作

例如:

//example class
class AppComponent {
   constructor() {}
}

//create class
var comp: AppComponent = new AppComponent();

//hand over to framework
fw.define("Component", comp);

//now I want to be able to call the added functions such as:
comp.setModel(/*some model*/);

您可以声明函数而不实现它

//example class
class AppComponent {
    constructor() { }
    setModel: () => void;
}

//create class
var comp: AppComponent = new AppComponent();

//hand over to framework
fw.define("Component", comp);

//now I want to be able to call the added functions such as:
comp.setModel(/*some model*/);

我想您可以使用这些方法创建一个
接口
,并且可以键入对
fw.define
的调用以返回该接口的对象(只需再次返回
comp
,但您可以将其分配给键入的第二个变量)。或者将您的
comp
强制转换到该界面(可能通过
any
)。不幸的是
define
没有返回任何内容。这就是为什么我将其转换为d.ts文件中定义的
sap.ui.core.mvc.Controller
(framework SAPUI5)。最简单的方法是将两者结合起来,声明一个类具有特定的函数,而不实现它们:这就是所做的for@BrunoGrieder它们的问题是不能实例化,框架必须创建它的子类。只定义一个具有框架可以设置的一些可选属性的接口可能会更好。但是使用抽象类,我必须在派生类的某个地方实现这些函数。我根本不想实现这些函数,因为它们已经在javascript框架中实现了,这正是我所需要的,谢谢。但是有没有办法不使用箭头函数呢?这是TypeScript声明函数的方式。但是它声明为箭头函数,所以如果我想在派生类中覆盖它,我还必须使用箭头函数。(这会导致框架出现问题,因为它使用另一个
this
调用函数,而不是类实例
this
。在arrow functions
中,this
绑定到类实例)声明使用箭头,但赋值时不必使用它<代码>comp.setModel=function(){}