2017-06-29 16 views
0

これは幾分新しくなっています。私がこれを間違えた場合、私を許してください。 私は分度器ElementFinderクラスのプロトタイプでメソッドを定義するためにこれを実行しようとしています。モジュール拡張エラー:「x」はタイプを参照していますが、ここで値と​​して使用されています

ここでは、結合されたプルリクエストの構文に従っています。 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のモジュールを使用していることです。モジュールをこのように増やすことはできませんか?

答えて

1

ElementFinderinterfaceであり、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コンストラクタがあることを確認してください、またはあなたがそれを実行したときに、これはちょうど爆発する必要があります。

関連する問題