TypeScript中的类型化方法
如何在TypeScript中定义类方法的类型?对于常规函数,我会这样做TypeScript中的类型化方法,typescript,Typescript,如何在TypeScript中定义类方法的类型?对于常规函数,我会这样做 interface Listener { (foo: string, bar: any): void; } // foo and bar will be typed according to the Listener interface let listener: Listener = function(foo, bar) { }; 是否可以使用侦听器接口声明方法 class Foo { // will warn
interface Listener { (foo: string, bar: any): void; }
// foo and bar will be typed according to the Listener interface
let listener: Listener = function(foo, bar) { };
是否可以使用侦听器接口声明方法
class Foo {
// will warn about implicit 'any' types
listener1(foo, bar) { }
// I want to avoid this
listener2(foo: string, bar: any): void { }
}
这将使我更容易重写子类中的方法,因为我知道这些方法需要符合侦听器接口。如果您想确保只将对象传递到“具有”侦听器函数的函数中,例如,您也可以使用接口
class Foo {
//as method
foo(): boolean {
return true;
}
//as lambda method
bar = (): boolean => {
return true;
}
}
interface IListener{
listener(type: string, payload: any):void
}
function somethingElse( l:IListener ){
l.listener( "hello", "heavy payload" );
}
希望这能有所帮助。但是这些都没有将方法的接口设置为
Listener
?这只是一个泛型类型方法的示例。只需将“boolean”替换为“Listener”,将其指定为返回该类型。除非我误解了你的问题?对不起,如果我不清楚的话,我想使用一个现有的接口来实现这个方法。