【问题标题】: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();

标签: typescript class factory typescript2.0


【解决方案1】:

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

interface IFoo {
    bar()
}

class Foo implements IFoo {
    public bar() {}
}

function func(): IFoo {
    return new Foo()
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 2011-12-15
    • 2018-06-14
    相关资源
    最近更新 更多