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 エラー: 型からのプロパティ 'parses' がありません ...

理解するのを手伝ってください

4

2 に答える 2

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 に答える
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 に答える