从打字稿中的扩展类返回通用值

沙恩克

我最多有3个班级:

abstract class Params {
    protected params = {};

    protected constructor() {}
}
abstract class ListParams extends Params {
    protected constructor() {
        super();
    }

    setSkip(skip: number): ListParams {
        this.params['skip'] = skip;

        return this;
    }
}
class MyEntityParams extends ListParams {
    constructor() {
        super();
    }

    setTitle(title: string): MyEntityParams {
        this.params['title'] = title;

        return this;
    }
}

我希望能够链接这样的方法:

const myEntityParams = new MyEntityParams();

myEntityParams
  .setSkip(0)
  .setTitle('HelloWorld');

由于setParams()return ListParams,我无法调用setTitle()它。我可以使用泛型作为返回值来使此示例工作吗?如果是,怎么办?setSkip()应该返回MyEntityParams课程。any实际上,将其用作返回值并不是一种选择,因为在这种情况下,缺少自动补全功能。

提香·切尔尼科娃·德拉戈米尔

您需要使用多态this作为返回类型:

abstract class Params {
    protected params: Record<string, any> = {};

    protected constructor() {}
}
abstract class ListParams extends Params {
    protected constructor() {
        super();
    }

    setSkip(skip: number): this {
        this.params['skip'] = skip;

        return this;
    }
}
class MyEntityParams extends ListParams {
    constructor() {
        super();
    }

    setTitle(title: string): this {
        this.params['title'] = title;

        return this;
    }
}

const myEntityParams = new MyEntityParams();

myEntityParams
  .setSkip(0)
  .setTitle('HelloWorld');

游乐场链接

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从打字稿中的静态方法中检索类名称

来自分类Dev

如何从打字稿中的类数组中解开类型

来自分类Dev

如何从打字稿中的类中提取类型?

来自分类Dev

如何从打字稿中的JSON中提取特定值

来自分类Dev

从打字稿中的地图中删除数组值

来自分类Dev

从打字稿中的值获取枚举的键

来自分类Dev

从打字稿1.6.2中的内置数组扩展的类在使用[]运算符时不会更新长度

来自分类Dev

如何扩展在C#中返回通用值的通用类?

来自分类Dev

从打字稿中的通用类型调用通用类型的静态函数

来自分类Dev

从打字稿中的部分对象中过滤通用列表

来自分类Dev

从打字稿中致电alertifyjs

来自分类Dev

从打字稿中的CLI解析文本

来自分类Dev

打字稿,自返回通用

来自分类Dev

如何从打字稿中的类中创建排除实例方法的类型?

来自分类Dev

从打字稿中具有相同父类的其他实例访问受保护的方法

来自分类Dev

扩展类的打字稿事件

来自分类Dev

打字稿参考扩展类

来自分类Dev

从打字稿中的对象列表中查找键的唯一值的有效方式

来自分类Dev

如何在Angular 6中将值从打字稿代码传递到CSS

来自分类Dev

从打字稿中的地图中检索值时,map.get不是函数

来自分类Dev

通用扩展React组件打字稿

来自分类Dev

从打字稿联合中选择元素的值

来自分类Dev

如何从打字稿中的typeof对象中删除索引

来自分类Dev

打字稿:通用类类型推断

来自分类Dev

打字稿返回值

来自分类Dev

无法从打字稿中获取全局变量?

来自分类Dev

如何从打字稿中的日期中减去n天

来自分类Dev

如何从打字稿在html中设置图像网址?

来自分类Dev

无法从打字稿中的 json 对象获取数组响应

Related 相关文章

热门标签

归档