Ich versuche, eine Typoskriptdefinitionsdatei für eine vorhandene javaScript-Bibliothek zu erstellen, bekomme aber weiterhin Laufzeitfehler.Typescript Definition Konstruktor oder Funktion?
Die Bibliothek enthält den folgenden Code:
/**
* Pdok namespace, will hold Api namespace
* @namespace
*/
Pdok = {};
Pdok.Api = function(config) {
/* implementation details are here... */
}
Das JavaScript-Beispielcode, Werk geliefert wurde und enthält die folgende Zeile:
var api = new Pdok.Api(config);
ich eine Typoskript Definitionsdatei erstellt, und bin in der Lage zu kompilieren ohne Probleme. Die Definition wie folgt aussieht:
declare namespace Pdok
{
interface configOptions {
/* .. details .. */
}
class Api {
constructor(config: configOptions);
}
}
Zur Laufzeit bekomme ich folgende Fehlermeldung: Uncaught Typeerror: Pdok.Api ist kein Konstruktor
Was in meiner .d.ts-Datei sein sollte zu erhalten funktioniert das?
Merkwürdiger, [ihr Beispiel] (http://kaart.pdok.nl/ api/api-doc/symbols/src/api_js_pdok-api.js.html) zeigt die Verwendung als 'api = Pdok.Api (config)' (keine Verwendung von 'new'), aber die' Api'-Funktion sieht wie ein Konstruktor aus (benutzt 'this' einen Haufen und gibt nichts explizit zurück). – Aaron
Ja, ich bemerkte auch, dass der Code in den Kommentaren sich von den Beispielen unter https://www.pdok.nl/sites/default/files/pdokkaart/pdok-kaart-source-code-20130726.zip unterschied. Die Beispiele aus diesen Dateien funktionieren alle. Dies ist auch die Quelle, die ich für die pdok-api.js verwendet habe. –