/ / Comment utiliser WinJS et Typescript ensemble? Cas: classe WinJS vs classe Typescript - typescript, winjs

Comment utiliser WinJS et Typescript ensemble? Cas: classe WinJS vs classe Typecript - typecript, winjs

Dans WinJS, je déclare une classe comme ça:

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

Mais en tapuscrit j'utilise:

module MyNamespace {
class MyClass {
constructor() {

}
}
}

Donc, je veux utiliser le comportement require / import de Typescript dans un projet WinJS. Quelle est la meilleure approche pour cela?

Réponses:

0 pour la réponse № 1

Si vous comptez utiliser TypeScript, vous devez utiliser les classes / interfaces / modules de TypeScript. Cela vous permettra de bénéficier de tous les avantages du typage statique fourni par TypeScript.

Remarque: vous pouvez toujours bénéficier des avantages de WinJS.Classe, mais vous devrez créer une interface pour les classes que vous pourrez ensuite utiliser pour indiquer le type au compilateur TypeScript. Ce serait plus explicite, et vous pourriez facilement oublier de le faire par endroits et passer à côté des avantages supplémentaires de la frappe.


0 pour la réponse № 2

Voir le WinJS.Utilities.requireSupportedForProcessing . Selon cela, vous pouvez utiliser un module TypeScript classique et une définition de classe. Par exemple:

module AnyModule
{
export class AnyClass
{
constructor()
{

}

public AnyMethod()
{
}
}
}

puis marquez cette classe (qui est de facto fonction) au traitement dans le code déclaratif en appelant WinJS.Utilities.markSupportedForProcessing. Après cette simple modification:

module AnyModule
{
export class AnyClass
{
constructor()
{

}

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

Vous pouvez utiliser cette méthode pour une fonction classique:

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

. L'appel de la méthode WinJS.Utilities.requireSupportedForProcessing peut ensuite être utilisé pour valider l'enregistrement.
Si vous n'avez pas besoin d'utiliser la classe ou la fonction dans l'appel déclaratif, l'appel de WinJS.Utilities.markSupportedForProcessing (...) peut être omis.