TypeScript: Kan ikke finde navnet fejl ved reference til et interface på tværs af flere filer
Jeg prøver at lave nogle definitionsfiler til et personligt projekt. (Jeg genskaber konteksten her med forskellige klasse-/modulnavne, så modelleringen giver måske ikke rigtig mening).
Jeg har følgende grænsefladedefinitionsfil, som ingen afhængigheder har, og som kompilerer fint:
// File: automobile.d.ts
declare module Transport {
interface Automobile {
// ... variables and functions
accelerate(direction:String):Boolean;
}
}
Men i denne fil, når jeg prøver at referere til Automobile i denne fil inden for det samme Transport modul, får jeg en Kan ikke finde navnet 'Automobile'.
// File: automobile_collection.d.ts
declare module Transport {
interface AutomobileCollection {
size:Number;
getItemAt(index:Number): Automobile;
}
}
Jeg har forsøgt at eksportere interfacet, men det hjalp ikke. Har du nogen idé om, hvad jeg gør forkert?
Svar #1
Takket være David fandt jeg ud af, at det ikke var en compilerfejl, fordi mit projekt kompilerer fint ved brug af tsc.
Det viser sig, at du skal tilføje /// <reference path="./automobile.d.ts"/> øverst i automobile_collection.d.ts for at få Webstorm til intelligent at finde ud af de refererede typer.