1

我有:

interface Intfff
{
     csv: {
       (url: string);
       parsess(lol: string);      
   };
}

class Class implements Intfff
{
    csv(url: string) {

    }
}

var obj: Intfff = new Class();
obj.csv('sdfsdf');
obj.csv.parsess('sdf');

如何实现方法 csv.parsess() ?翻译器 typeScript 上的错误 Class: missing property 'parsess' from type ...

帮我理解

4

2 回答 2

2

您无法使用类方法来填充该接口。any在将其添加到对象之前,您必须将函数定义为 type并添加缺少的成员。

interface Intfff
{
    csv: {
        (url: string);
        parsess(lol: string);      
    };
}

class Test implements Intfff {
    public csv : { (url: string); parsess(lol: string); };

    constructor() {
        var csv : any = function (url: string) {
            // ...
        };
        csv.parsess = function (lol: string) {
            // ...
        };
        this.csv = csv;
    }
}
于 2012-12-14T08:02:04.817 回答
2

为什么不试试这个呢?

interface Intfff
{
    csv(url: string): Intfff;
    parsess(lol:string):string;
}

class TestClass implements Intfff
{
    csv(url: string) {  
        return this;
    }
    parsess(lol: string) {
        return "Hello";
    }
}

var obj: Intfff = new TestClass();
obj.csv('sdfsdf').parsess('sdf');
于 2012-12-13T22:20:18.190 回答