Hier ist eine einfache Schnittstelle in Modul definiert wird unter Verwendung einer Datei:Typoskript Schnittstelle in einem anderen Modul-Datei
interface IDirectoryLink
{
link_title: string
link_desc: string
}
Und hier ist die Klasse in Modul A-Datei:
class DirectoryModel implements IDirectoryLink
{
public link_title: string
public link_desc: string
constructor(fields: Object)
{
// Loops to populate class properties with fields values
_.forOwn(fields, (value, key) => // Needs fat arrow to bind 'this'
{
if (value) { this[key] = value }
})
}
}
später auf der Datei, I instanziieren die Klasse:
let directoryModel: IDirectoryLink = new DirectoryModel(fields)
und dann noch im Modul A, die Instanz an eine Funktion, die für die Validierung in Modul B ist :
let val = validation.modelValidator(directoryModel)
In Modul B-Datei ist hier der obere Teil der Funktion, die die Modellinstanz übergeben wird einige Arbeit auf, es zu tun:
export let modelValidator = function (directoryModel: IDirectoryLink) // cannot find name IDirectoryLink
{
//code
}
Ich hatte gehofft, dass die Instanz als "bestanden directoryModel 'wäre vom Typ IDirectoryLink. Aber es ist nicht, es ist vom Typ "any" und wenn ich ': IDirectoryLink' wie im obigen Code hinzufüge, wird 'Name nicht IDirectoryLink' gefunden.
Wie kann die übergebene Instanz als IDirectoryLink-Typ in Modul B-Datei erkannt werden? Sollte ich das gesamte Modul A in B importieren, das exportierte Schnittstelle enthalten würde?