我有一些接口及其实现的定义。有很多方法必须在每个实现类上声明。
我觉得它只是一个定义,既乏味又多余。是否只是缺乏时间来实现此功能,或者为什么应该强制执行环境实现定义背后的一些想法?还是我错过了什么?
更新
我现在不喜欢我的问题,它是从一个确信接口成员已实现的人的角度写的,因为图书馆所有者这么说。但是,如果我决定为其他人的库创建自己的接口,我最好强制指定每个实现成员作为健全性检查。
我有一些接口及其实现的定义。有很多方法必须在每个实现类上声明。
我觉得它只是一个定义,既乏味又多余。是否只是缺乏时间来实现此功能,或者为什么应该强制执行环境实现定义背后的一些想法?还是我错过了什么?
更新
我现在不喜欢我的问题,它是从一个确信接口成员已实现的人的角度写的,因为图书馆所有者这么说。但是,如果我决定为其他人的库创建自己的接口,我最好强制指定每个实现成员作为健全性检查。
假设您不必写出接口成员:
class Base { }
class Derived extends Base { }
interface Foo {
method(t: number): Base;
}
declare class FooImpl1 implements Foo {
// Empty
}
declare class FooImpl2 implements Foo {
public method(): Derived;
}
是FooImpl2
试图声明一个额外的重载method
,还是使用采用更少参数并返回更多派生类型的签名来FooImpl2
实现?method
要么是一个有效的解释。您必须为这样的各种情况制定规则,以便程序员可以指定它们的实际含义,从而降低语言的可预测性。
您不必为环境声明提供任何实现。
例如,一个接口将只描述没有实现的类型:
interface MyInterface {
property: string;
method(input: number): void;
}
这同样适用于类或模块的环境声明:
declare class MyClass {
property: string;
method(input: number): void;
}
如果要表示实现和接口的类的环境声明,可以使用以下快捷方式:
interface MyInterface {
property: string;
method(input: number): void;
}
declare var MyClass: MyInterface;