Cómo definir una clase singleton de JavaScript en un archivo de declaración de TypeScript
El siguiente código está en mi archivo "test-file.js", quiero trasladarlo a un archivo "test-file.d.ts" para que luego pueda importarlo en mi "test1.ts" y programar utilizando los "Tipos" de JavaScript en Typescript.
No he podido averiguar cómo en mi "test-file.d.ts" definir lo siguiente de tal manera que la misma implementación exista desde Typescript.
(function(application) {
application.Message = function() {
this.m_messageContents = "New Message";
};
application.Message.prototype.getApplicationMessageContents = function() {
return this.m_messageContents;
};
application.SystemFactory = (function(){
var factory =
/**
* @lends application.SystemFactory
*/
{
createMessage: function() {
return application.Message();
}
};
return factory;
}());
}(application));
No quiero volver a codificar este archivo en un archivo *.ts, en cambio, como se mencionó arriba, quiero importarlo en mi "test1.ts".
Gracias.
Respuesta #1
Déjame ver si esto te parece bien:
declare module application {
export class Message {
getApplicationMessageContents(): string;
}
export class SystemFactory {
static createMessage(): Message;
}
}
Y puedes usarlo así:
let message = application.SystemFactory.createMessage();
let content = message.getApplicationMessageContents();
Como puedes ver, declararás el static createMessage(): Message; como estático y no la clase.
