我对此有些新。所以请问,如果我错了。我想这样做是为了定义量角元素类别原型上的方法。
我正在遵循此处的合并拉请求中的语法。
> 1 import { ElementFinder} from "protractor";
> 2
> 3 declare module "protractor" {
> 4 interface ElementFinder {
> 5 doSomething(): void;
> 6 } }
> 7
> 8
> 9 ElementFinder.prototype.doSomething = function (): void {
> 10 console.log("");
> 11 };
我在第9行上遇到此错误
[ts]'elementfinder'仅是指一种类型,但被用作 在这里值。
我在这里做错了什么?示例中唯一不同的是我使用的是来自NPM的模块,而不是我的软件包中定义的模块。是否可以通过这种方式增加模块?
看起来ElementFinder
是interface
而不是class
。似乎没有名为ElementFinder
的导出对象您可以参考以获取其原型。量角器会在运行时给您ElementFinder
构造函数吗?如果是这样,您可以这样输入:
type Constructor<T> = {
new (...args: any[]): T;
readonly prototype: T;
}
declare module "protractor" {
interface ElementFinder {
doSomething(): void;
}
export const ElementFinder: Constructor<ElementFinder>;
}
此应该修复类型错误,但请确保在运行时实际上有一个ElementFinder
构造函数,否则在运行它时会爆炸。