【问题标题】:How to add alias to a TypeScript interface for an existing property? [duplicate]如何为现有属性的 TypeScript 接口添加别名? [复制]
【发布时间】:2020-11-17 18:55:12
【问题描述】:

如何实现分配另一个属性的类型?

// 3rd party interface
interface A {
   foo: FooType
}

// my desired solution
interface B extends A {
   bar: typeof A.foo
}

【问题讨论】:

    标签: typescript interface


    【解决方案1】:

    使用方括号表示法:A['foo']

    // 3rd party interface
    interface A {
       foo: FooType
    }
    
    // my desired solution
    interface B extends A {
       bar: A['foo'] // here is the solution
    }
    

    【讨论】:

    • 谢谢,很简单。我尝试了各种时髦的语法、泛型等。但是,不幸的是,它无法在 WebStorm 中维护 DocBlock 文档 :( 有什么想法吗?
    • 什么意思:WebStorm 中的 DocBlock 文档?我对WS一点也不熟悉
    • codesandbox.io/s/lucid-architecture-6ppe6 在 VSCode 中也一样。在x 中尝试CTRL+Hover foobar。您将看到 foo 的 DocBlock,但不会看到 bar 的 DocBlock。
    • @wintercounter 你还没有为bar 添加文档,如果你这样做了,它会像你期望的那样工作:imgur.com/a/ot6Wn1H 如果你想了解更多,这完全是一个单独的问题。
    • 是的,我会的,只是表明我的意思。由于我使用foo 的类型,我还想从foo 获取bar 的DocBlock。这就是我的观点。无论如何,谢谢,提出一个新问题。
    猜你喜欢
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 2020-05-18
    • 2022-06-16
    • 2022-01-09
    • 2018-04-05
    相关资源
    最近更新 更多