TypeScript基本编程:接口问题

时间:2017-01-28 15:00:59

标签: javascript angular typescript

只是想学习TypeScript。

不确定为什么我仍然低于错误。

注意:我已尝试满足界面的所有要求

interface Greet {
    greet(name?: Greet): string;
    (val: string): string;
}


class Person implements Greet {

    greet(name?: Greet): string {
        return 'Hello ' + name;
    }

    obj(val: string):string {
        return 'Hello';
    };


}

错误

TsFiles/OopsTest.ts(8,7): error TS2420: Class 'Person' incorrectly implements interface 'Greet'.
  Type 'Person' provides no match for the signature '(val: string): string'
8:26:50 PM - Compilation complete. Watching for file changes.

2 个答案:

答案 0 :(得分:1)

如果您正在尝试创建hybrid type,那么根据文档,实现应该类似于:

function getPerson(): Greet {
    let person = <Greet>function(val: string) { return '' };
    person.greet = function(name?: Greet) { return '' };
    return person;
}

在界面中设置(val: string): string;要求Greet的实现是功能,而不是

答案 1 :(得分:0)

interface Greet {
    greet(name?: Greet): string;
    obj(val: string): string; // <<<=== `obj` missing
}