J'éviterais maintenant d'utiliser /// <reference path='moo.ts'/>mais pour les bibliothèques externes où le fichier de définition n'est pas inclus dans le package.
Le reference pathrésout les erreurs dans l'éditeur, mais cela ne signifie pas vraiment que le fichier doit être importé. Par conséquent, si vous utilisez un workflow gulp ou JSPM, ceux-ci peuvent essayer de compiler séparément chaque fichier au lieu d' tsc -outun fichier.
À partir de Typescript 1.5
Préfixez simplement ce que vous souhaitez exporter au niveau du fichier (portée racine)
aLib.ts
{
export class AClass(){} // exported i.e. will be available for import
export valueZero = 0; // will be available for import
}
Vous pouvez également ajouter plus tard à la fin du fichier ce que vous souhaitez exporter
{
class AClass(){} // not exported yet
valueZero = 0; // not exported yet
valueOne = 1; // not exported (and will not in this example)
export {AClass, valueZero} // pick the one you want to export
}
Ou même mélanger les deux ensemble
{
class AClass(){} // not exported yet
export valueZero = 0; // will be available for import
export {AClass} // add AClass to the export list
}
Pour l'importation vous avez 2 options, vous choisissez d'abord ce que vous voulez (une par une)
anotherFile.ts
{
import {AClass} from "./aLib.ts"; // you import only AClass
var test = new AClass();
}
Ou l'ensemble des exportations
{
import * as lib from "./aLib.ts"; // you import all the exported values within a "lib" object
var test = new lib.AClass();
}
Remarque concernant les exportations: exporter deux fois la même valeur provoquera une erreur {export valueZero = 0; export {valueZero}; // valueZero est déjà exporté…}