/ / ¿Cómo usar WinJS y Typecript juntos? Caso: clase WinJS vs clase mecanografiada - mecanografiada, winjs

¿Cómo usar WinJS y Typescript juntos? Caso: Clase WinJS vs clase de Typescript - mecanografiado, winjs

En WinJS declaro una clase así:

WinJS.Namespace.define("MyNamespace", {
MyClass: WinJS.Class.define(function ctor() {
//constructor
},
{
//instance members
},
{
//static members
})
});

Pero en Typecript uso:

module MyNamespace {
class MyClass {
constructor() {

}
}
}

Por lo tanto, quiero usar el comportamiento de requerir / importar de Typecript en un proyecto WinJS. ¿Cuál es el mejor enfoque para eso?

Respuestas

0 para la respuesta № 1

Si va a usar TypeScript, entonces debe usar las clases / interfaces / módulos de TypeScript. Esto le permitirá obtener todos los beneficios de la escritura estática que proporciona TypeScript.

Nota: Aún podría obtener los beneficios con WinJS.Class, pero necesitaría crear una interfaz para las clases que luego podría usar para indicarle al compilador TypeScript el tipo. Sería más explícito, y fácilmente podría olvidarse de hacerlo en lugares y perderse los beneficios adicionales de escribir.


0 para la respuesta № 2

Ver el WinJS.Utilities.requireSupportedForProcessing . De acuerdo con esto, puede usar el módulo TypeScript clásico y la definición de clase. Por ejemplo:

module AnyModule
{
export class AnyClass
{
constructor()
{

}

public AnyMethod()
{
}
}
}

y luego marque esta clase (quién es la función de facto) para procesar en el código declarativo llamando WinJS.Utilities.markSupportedForProcessing. Después de esta simple modificación:

module AnyModule
{
export class AnyClass
{
constructor()
{

}

public AnyMethod()
{
}
}
WinJS.Utilities.markSupportedForProcessing(AnyClass);
}

Puede usar esta forma para la función clásica:

module AnyModule
{
function AnyFunc()
{
}
WinJS.Utilities.markSupportedForProcessing(AnyFunc);
}

. Llamar al método WinJS.Utilities.requireSupportedForProcessing se puede utilizar para validar el registro.
Si no necesita utilizar la clase o función en la llamada declarativa, puede omitir llamar a WinJS.Utilities.markSupportedForProcessing (...).