打字稿调用可以实现一个接口,并使vars私有吗?

戴维·蒂伦

这就是我想要做的。我们在类的结构中接收JSON数据。因此我们可以声明一个接口,如下所示:

export interface IElement {
id : number;
name : string;
}

然后该类如下:

export class Element implements IElement {
    id : number;
    name : string;

constructor (src : IElement) {
    this.id = src.id;
    this.name = src.name;
    }
}

然后,我们将JSON数据转换为<IElement>并将其传递给类构造函数。然后可以将IElement或Element传递给构造函数,这样生活会很顺利。

但是...我想强制使用getter和setter进行访问。所以我想做的是:

export class Element implements IElement {
    private id : number;
    private name : string;

constructor (src : IElement) {
    this.id = src.id;
    this.name = src.name;
    }

getId () : number {
    return this.id;
    }
getName () : string{
    return this.name;
    }
}

以上对我来说仍然可以正常工作,因为在构造函数中,我允许访问这些变量。但是,如果将它们设置为private,则Element不再实现IElement,因为它不满足IElement中的约定。

有没有办法做到这一点?如果需要的话,Element不必实现IElement,但如果这样做,则可以使生活更清洁。

瑞安·卡瓦诺(Ryan Cavanaugh)

您的公共表面积可以代替该接口,或者不是。类不能代替的IElement(它不应该,如果你想迫使人们使用干将!),所以它不能implement接口。

由于您没有说出为什么要让人们使用getter,所以我不知道这是否合适,但是您可以在类中使用property getter:

export interface IElement {
    id: number;
    name: string;
}

export class Element implements IElement {
    private _id: number;
    private _name: string;
    constructor (src: IElement) {
        this._id = src.id;
        this._name = src.name;
    }

    get id() {
        return this._id;
    }

    get name() {
        return this._name;
    }
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

解决打字稿的另一个私有方法中的函数内私有方法调用的范围

来自分类Dev

我可以有一个带有输入参数指南的打字稿类构造函数吗?

来自分类Dev

打字稿:定义一个接口/类型,其中至少存在两个属性之一(也可以同时存在)

来自分类Dev

您可以在实现另一个接口的组件的接口中键入字段吗?

来自分类Dev

您可以在以打字稿/角度导出它之前创建一个类吗?| TSLint:未使用的表达式,预期为赋值或函数调用

来自分类Dev

打字稿:调用另一个类的“方法”

来自分类Dev

打字稿写一个可调用的对象

来自分类Dev

打字稿基于接口从另一个对象创建一个对象

来自分类Dev

可以指定一个Dart接口,该接口可以由类使用sync或async方法实现吗?

来自分类Dev

几个类可以共享一个接口实现吗?

来自分类Dev

我可以在C ++中创建一个匿名的即时类(接口的实现)吗

来自分类Dev

一个类可以继承其他类的接口所构造的方法的实现吗?

来自分类Dev

我可以强制传递的对象实现一个或多个接口吗?

来自分类Dev

我们可以在同一个对象中实现多个 QtRO 接口吗?

来自分类Dev

参数的默认值可以取决于打字稿中的另一个参数吗

来自分类Dev

数组和泛型类扩展了另一个类:可以在打字稿中使用吗?

来自分类Dev

TypeScript:我可以声明一个接口可以具有许多其他属性吗?

来自分类Dev

TypeScript:我可以声明一个接口可以具有许多其他属性吗?

来自分类Dev

一个对象可以更改其他对象的私有数据吗?

来自分类Dev

我可以在私有目录下建立一个公共目录吗?

来自分类Dev

一个将JSON对象转换/转换为打字稿类型/接口的工具?

来自分类Dev

使用角度/打字稿中的另一个函数为接口属性分配值?

来自分类Dev

如果我有两个接口,那么一个类可以继承两个接口吗?

来自分类Dev

我可以在Typescript中创建一个实现接口的类,并且仍然可以在其上使用装饰器吗?

来自分类Dev

一个类可以在PHP中实现几个接口?

来自分类Dev

打字稿每课一个文件

来自分类Dev

在 javascript 库中的导出类之外声明一个函数是实现私有函数的好方法吗?

来自分类Dev

实现一个接口,该接口有一个方法返回一个接口但得到一个未实现的错误

来自分类Dev

可以实现两个接口吗?

Related 相关文章

  1. 1

    解决打字稿的另一个私有方法中的函数内私有方法调用的范围

  2. 2

    我可以有一个带有输入参数指南的打字稿类构造函数吗?

  3. 3

    打字稿:定义一个接口/类型,其中至少存在两个属性之一(也可以同时存在)

  4. 4

    您可以在实现另一个接口的组件的接口中键入字段吗?

  5. 5

    您可以在以打字稿/角度导出它之前创建一个类吗?| TSLint:未使用的表达式,预期为赋值或函数调用

  6. 6

    打字稿:调用另一个类的“方法”

  7. 7

    打字稿写一个可调用的对象

  8. 8

    打字稿基于接口从另一个对象创建一个对象

  9. 9

    可以指定一个Dart接口,该接口可以由类使用sync或async方法实现吗?

  10. 10

    几个类可以共享一个接口实现吗?

  11. 11

    我可以在C ++中创建一个匿名的即时类(接口的实现)吗

  12. 12

    一个类可以继承其他类的接口所构造的方法的实现吗?

  13. 13

    我可以强制传递的对象实现一个或多个接口吗?

  14. 14

    我们可以在同一个对象中实现多个 QtRO 接口吗?

  15. 15

    参数的默认值可以取决于打字稿中的另一个参数吗

  16. 16

    数组和泛型类扩展了另一个类:可以在打字稿中使用吗?

  17. 17

    TypeScript:我可以声明一个接口可以具有许多其他属性吗?

  18. 18

    TypeScript:我可以声明一个接口可以具有许多其他属性吗?

  19. 19

    一个对象可以更改其他对象的私有数据吗?

  20. 20

    我可以在私有目录下建立一个公共目录吗?

  21. 21

    一个将JSON对象转换/转换为打字稿类型/接口的工具?

  22. 22

    使用角度/打字稿中的另一个函数为接口属性分配值?

  23. 23

    如果我有两个接口,那么一个类可以继承两个接口吗?

  24. 24

    我可以在Typescript中创建一个实现接口的类,并且仍然可以在其上使用装饰器吗?

  25. 25

    一个类可以在PHP中实现几个接口?

  26. 26

    打字稿每课一个文件

  27. 27

    在 javascript 库中的导出类之外声明一个函数是实现私有函数的好方法吗?

  28. 28

    实现一个接口,该接口有一个方法返回一个接口但得到一个未实现的错误

  29. 29

    可以实现两个接口吗?

热门标签

归档