2017-12-21 4 views
0

これで、WebstormとVSCodeはトップレベルのプロパティ、継承されたプロパティなどの適切なインテリセンスのみを行うことに気付きました。トリックとして、継承されたプロパティであるスーパークラスにプロパティを追加しますが、そのスーパークラスから型を参照するだけです。サブクラスフィールドのスーパークラスフィールドのタイプを参照する方法

enter image description here

私は継承されたプロパティの一部を表示するには、IDEをだましたい:ここ

は、2つのトップレベルのプロパティは太字であり、継承されたプロパティが灰色になっていることを示すスクリーンショットであります大胆にもとった?

私は、次のインタフェースを持って、一方が他方を拡張:

export interface IHookOrTestCaseParam { 
    slow:() => void, 
    fatal: (err: any) => void, 
    callbackMode: boolean, 
    timeout: Function, 
    done: Function, 
    skip:() => void, 
    set: (k: string, v: any) => void, 
    get: (k?: string) => any, 
    getValues: (...args: Array<string>) => Array<any>; 
    getMap: (...args: Array<string>) => Object 
    wrap: (fn: Function) => Function 
    wrapFinal: (fn: Function) => Function; 
    final: (fn: Function) => void; 
    log: (...args: Array<string>) => void; 
    wrapFinalErrorFirst: (fn: Function) => Function; 
    wrapErrorFirst: (fn: Function) => Function; 
    handleAssertions: (fn: Function) => void; 
    assert: typeof chai.assert 
    expect: typeof chai.expect 
    should: typeof chai.should 
} 


export interface ITestCaseParam extends IHookOrTestCaseParam { 
    // the t in t => {} 
    (err?: Error): void 
    skip: IHookOrTestCaseParam.skip, // <<<< here is a problem 
    pass: Function, 
    fail: Function, 
    assert: typeof chai.assert, 
} 

私は私のIDEでこれを参照してください。

enter image description here

私はこの変更した場合:

skip: IHookOrTestCaseParam.skip, 

をこれまで

skip: IHookOrTestCaseParam['skip'], 

エラーメッセージが離れて行くようだ:

enter image description here

誰も私が何をしようとしていますかを理解し、それを行うための良い方法を知っていますか?

+0

として、それはタイプではありません。あなたは何をしようとしているのですか? – SLaks

+2

プロパティは自動的に継承されます。何もする必要はありません。 – SLaks

+0

**プロパティは自動的に継承されますが、intellisenseは継承されたプロパティではうまく機能しませんので、再参照してください。** –

答えて

1

はい、活字体インタフェースは、名前で別のインターフェイスのフィールドの型を参照することができます。エラーはあなたを教えしようとしている

interface A { 
    name: string; 
} 

interface B { 
    name: A['name']; 
} 
+0

これは良いアイデアかどうかにかかわらず質問に答えるので、私はあなたにポイントを与えます –

+0

これは華麗な質問どのdeserver unvote笑をunerote –

関連する問題