创建实现接口的typescript类

时间:2017-05-12 15:12:44

标签: typescript

我想实现一个接口,但我很难获得正确的语法。

接口我想实现

interface Test {
  [name : string] : (source : string) => void;
}

如果我理解这一点,那么界面基本上是一个对象,其中字符串作为键,并且作为值起作用。

非常感谢任何帮助。

编辑:我收到了几个错误,“界面实现不正确”,“缺少索引签名”等,

游乐场示例: Link

我没有实现接口,它来自sdk

2 个答案:

答案 0 :(得分:1)

只需将索引签名添加到类中:

interface Test {
    [name: string]: (source: string) => void;

}

class TestClass implements Test {
    [name: string]: (source: string) => void; // Add this
    getLastName(source: string) {
        console.log("test"); 
    }
}

答案 1 :(得分:0)

我认为类不能实现这样的接口。

这更像是一个“打字对象”界面。

你可以输入一个对象来指定它应该有一个字符串作为键,一个函数接受一个字符串并且不返回任何值作为值。

像这样:

let myObj: Test = {
    test: (source: string) => { console.log('function returning void'); }
};