【发布时间】:2018-11-21 22:46:50
【问题描述】:
为什么 typescript 不支持接口中的私有成员?
以下情况如何处理?
interface IFoo
{
private member: {};
}
class Foo implements IFoo
{
private member = {};
}
【问题讨论】:
标签: typescript
为什么 typescript 不支持接口中的私有成员?
以下情况如何处理?
interface IFoo
{
private member: {};
}
class Foo implements IFoo
{
private member = {};
}
【问题讨论】:
标签: typescript
接口定义了“公共契约”,它描述了类的公共方面,因此使用私有访问修饰符没有意义。
From Typescript interface documentation:
这禁止你使用它们来检查一个类是否也有 类实例私有端的特定类型。
但接口可以扩展具有私有成员的类。
在 TypeScript 中,接口也可以扩展类,但仅限于某种方式 这涉及继承。当一个接口扩展一个类时, 接口包括所有类成员(公共和私有),但没有 类的实现。
class Customer
{
private id: number;
get Id(): number
{
return this.id
}
set Id( value: number )
{
this.id = value;
}
}
interface ICustomer extends Customer
{
MiddleName: string;
}
【讨论】: