TypeScript中的类型化方法

时间:2015-05-04 21:12:09

标签: typescript

如何在TypeScript中定义类方法的类型?对于常规功能,我会做

StringBuilder

是否可以使用Listener接口声明方法?

interface Listener { (foo: string, bar: any): void; }

// foo and bar will be typed according to the Listener interface
let listener: Listener = function(foo, bar) { };

这将使我更容易覆盖子类中的方法,因为知道方法需要符合Listener接口。

2 个答案:

答案 0 :(得分:2)

如果要确保只传递对象,例如“具有”侦听器功能的函数,您还可以使用接口。

 interface IListener{
     listener(type: string, payload: any):void
 }

 function somethingElse( l:IListener ){
     l.listener( "hello", "heavy payload" );
 }

希望这有帮助。

答案 1 :(得分:1)

class Foo {
    //as method
    foo(): boolean {
        return true;
    }

    //as lambda method
    bar = (): boolean => {
        return true;
    }
}