Je suis coincé avec la bonne façon d'importer une bibliothèque JavaScript AMD (https://github.com/dcodeIO/bytebuffer.js) dans un fichier TypeScript.Importer une bibliothèque AMD JS dans un fichier TypeScript
J'ai trouvé sa définition de type - pas à jour - (https://github.com/SINTEF-9012/Proto2TypeScript/commit/0889dccbf6048f116551a73e77d75dd83553cfe6), mais en réalité je n'ai pas réussi à trouver un moyen de l'utiliser et de faire charger la bibliothèque par RequireJS.
Voici le code que je utilise:
/// <amd-dependency path="Scripts/bytebuffer" />
var ByteBuffer = require('Scripts/bytebuffer');
import protocols = require('protocols');
export class Pippo
{
readPayload(payload: ArrayBuffer, ECType: string): any
{
var ECStruct = new protocols.ECStruct(ECType);
var bb = new ByteBuffer()
.writeIString("Hello world!")
.flip();
console.log(bb.readIString() + " from bytebuffer.js");
}
}
Les deux modules protocoles et ByteBuffer sont correctement chargés, mais en fait je ne peux pas voir les membres de l'instance bb dans Visual Studio. Si je mets la ligne
/// <reference path="scripts/typings/bytebuffer/bytebuffer.d.ts" />
et commenter // var ByteBuffer = require ('scripts/ByteBuffer'); bien sûr, je peux voir les méthodes et les propriétés de bb, mais le module n'est pas chargé au moment de l'exécution.
Est-il possible d'avoir les ByteBuffer.js chargés par RequireJS avec la possibilité de voir ses membres dans VS?
Merci
Je suis en train de m'en occuper moi-même avec la version la plus récente d'Angular2. Je tente d'inclure une bibliothèque javascript basée sur AMD (sans npm) et je passe un temps inhabituel à le faire fonctionner. C'est incroyable comme il y a peu d'informations pour le faire correctement - tout semble être un hack et fait des suppositions sur l'utilisation de SystemJS, etc. J'ai trouvé cette page de Typescript mais je ne suis toujours pas là. Peut-être que ça va t'aider. https://www.typescriptlang.org/docs/handbook/migrating-from-javascript.html – henry74