【问题标题】:How to restrict the typescript T to be only camplex object如何将打字稿 T 限制为仅 camplex 对象
【发布时间】:2020-07-27 22:23:54
【问题描述】:

我有这个类定义

class abstract MyClass<T> { }

可以用作

class MyOtherClass extends MyClass<IInterface> { }

但是我想限制使用所有简单类型的此类:

class MyOtherClass extends MyClass<string> { } //<-- do not allow

class MyOtherClass extends MyClass<nubmer> { }  //<-- do not allow

基本上我只想让 T 成为一个复杂的对象。

任何想法我如何做到这一点?

【问题讨论】:

    标签: typescript typescript-generics


    【解决方案1】:

    您可以从对象扩展泛型类型

    abstract class MyClass<T extends object> { }
    

    Playground

    【讨论】:

    • 哦,我明白了,这是最好的方法吗?还有其他方法吗?
    • 据我所知这是最简单最有效的方法,也许其他用户会提出更好的方法
    • 您不妨链接到相关文档:generic constraints
    • stackoverflow.com/q/63132286/2926340有什么想法吗?
    猜你喜欢
    • 2020-11-17
    • 1970-01-01
    • 2021-11-25
    • 2017-01-04
    • 2018-07-27
    • 2020-11-04
    • 1970-01-01
    • 2020-09-14
    • 2021-07-01
    相关资源
    最近更新 更多