-
Notifications
You must be signed in to change notification settings - Fork 12.9k
Closed
Labels
DuplicateAn existing issue was already createdAn existing issue was already created
Description
Caveat: I have mainly written dart code during the last 12 months.
I think it would be great if a class would implicitly define an interface that you could implement (like in dart). The implicit interface would only contain the public instance members of the class and of any interfaces it implements.
This would help in cases where you don't have control over a class, it exists in some third party library, and they haven’t exposed an explicit interface.
Example:
class Person
{
// Not in the interface, since this is private
private name;
// Not in the interface, since this is a constructor.
constructor(name : string)
{
this.name = name;
}
// In the interface.
greet(who : string) : string
{
return `Hello, ${who}. I am ${this.name}.`;
}
}
// An implementation of the Person interface.
class Imposter implements Person
{
greet(who : string) : string
{
return `Hello, ${who}. Do you know who I am?`;
}
}
Metadata
Metadata
Assignees
Labels
DuplicateAn existing issue was already createdAn existing issue was already created