Ok, also habe ich bemerkt, dass Webstorm und VSCode nur gute Intellisense für Top-Level-Eigenschaften, nicht vererbte Eigenschaften, usw. machen. Also als Trick, würde ich gerne Fügen Sie Superklassen, die geerbte Eigenschaften sind, Eigenschaften hinzu, verweisen Sie jedoch nur auf die Typen aus der Oberklasse.Wie man den Typ des Superklassenfeldes im Subklassenfeld referenziert
Hier ein Screenshot zeigt, dass die beiden Top-Level-Eigenschaften in fett sind, und die vererbten Eigenschaften sind in grau:
Ich möchte die IDE Trick, einige der vererbten Eigenschaften zeigen, auch fett Ich habs?
ich folgende Schnittstellen haben, erstreckt sich das eine das andere:
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,
}
sehe ich in meiner IDE:
wenn ich das ändern:
skip: IHookOrTestCaseParam.skip,
dazu
skip: IHookOrTestCaseParam['skip'],
Die Fehlermeldung scheint weg zu gehen:
Hat jemand verstehen, was ich zu tun versucht, und weiß, einen guten Weg, es zu tun?
Da der Fehler zu sagen versucht, dass kein Typ ist. Was versuchst du zu machen? – SLaks
Eigenschaften werden automatisch vererbt; Sie sollten nichts tun müssen. – SLaks
** Eigenschaften werden automatisch vererbt, aber intellisense funktioniert nicht gut mit vererbten Eigenschaften, daher möchte ich sie erneut referenzieren. ** –