我对此有点新鲜。如果我弄错了,请原谅。 我正在尝试这样做以在量角器ElementFinder类原型上定义一个方法。
我在这里遵循合并拉取请求中的语法。https://github.com/Microsoft/TypeScript/pull/6213
> 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模块,而不是我的包中定义的模块。这样就不可能增加模块吗?
答案 0 :(得分:2)
看起来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
构造函数,否则在运行它时会爆炸。