如何描述类的返回值?

Posted

技术标签:

【中文标题】如何描述类的返回值?【英文标题】:How to describe return value of Class? 【发布时间】:2021-07-17 02:03:43 【问题描述】:

我需要在 typescript 中明确描述函数的返回类型。碰巧返回值总是一个类。不幸的是,以下方法不起作用:

interface IFoo 
    bar()


class Foo implements IFoo 
    public bar() 


function func(): IFoo 
    return Foo

“typeof Foo”类型中缺少属性“bar”,但在类型中是必需的 'IFoo'.ts(2741)

而且,这也会产生错误:

function func(): Foo 
    return Foo

“typeof Foo”类型中缺少属性“bar”,但在类型中是必需的 'Foo'.ts(2741)

是否可以给函数一些有意义的返回值描述?

【问题讨论】:

你能举个例子说明应该如何调用func() 函数/如何使用它的返回值吗? 你应该看看你的代码在the Playground中做了什么 1.定义 IFoo.bar() 返回的内容。 2. 更新Foo.bar() 以返回相同的内容。 3.将func()改为return new Foo(); 【参考方案1】:

你需要返回一个类Foo的实例,它实现了IFoo。当您只是 return Foo 时,您返回的是类的定义,而不是类的实例。

interface IFoo 
    bar()


class Foo implements IFoo 
    public bar() 


function func(): IFoo 
    return new Foo()

【讨论】:

以上是关于如何描述类的返回值?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用PHPUnit测试一个方法调用了同一个类的其他方法,但是没有返回值

如何获取c++类中的返回值

为啥包含类的名称不被识别为返回值函数注释? [复制]

在类的构造函数中返回值

Linux和Windows返回值不同的原因是啥,如何解决?

Java中的返回值问题,父子类的问题