Eu evitaria usar agora, /// <reference path='moo.ts'/>mas para bibliotecas externas, onde o arquivo de definição não está incluído no pacote.
A reference pathsolução resolve erros no editor, mas isso realmente não significa que o arquivo precise ser importado. Portanto, se você estiver usando um fluxo de trabalho gulp ou JSPM, eles poderão tentar compilar separadamente cada arquivo em vez de tsc -outum arquivo.
Do Typecript 1.5
Basta prefixar o que você deseja exportar no nível do arquivo (escopo raiz)
aLib.ts
{
export class AClass(){} // exported i.e. will be available for import
export valueZero = 0; // will be available for import
}
Você também pode adicionar posteriormente, no final do arquivo, o que deseja exportar
{
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 até misture os dois juntos
{
class AClass(){} // not exported yet
export valueZero = 0; // will be available for import
export {AClass} // add AClass to the export list
}
Para a importação, você tem 2 opções, primeiro você escolhe novamente o que deseja (uma por uma)
anotherFile.ts
{
import {AClass} from "./aLib.ts"; // you import only AClass
var test = new AClass();
}
Ou as exportações inteiras
{
import * as lib from "./aLib.ts"; // you import all the exported values within a "lib" object
var test = new lib.AClass();
}
Nota sobre as exportações: exportar duas vezes o mesmo valor gerará um erro {export valueZero = 0; exportar {valueZero}; // valueZero já está exportado…}