/ / Как да използваме WinJS и Typescript заедно? Случай: клас WinJS срещу клас Typescript - typecript, winjs

Как да използвате WinJS и Typescript заедно? Случай: Клас на WinJS срещу клас Типспис - машинопис, winjs

В WinJS декларирам клас така:

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

Но в Typescript използвам:

module MyNamespace {
class MyClass {
constructor() {

}
}
}

Така че, искам да използвам изискването / импортирането на Typescript в проект WinJS. Какъв е най-добрият подход за това?

Отговори:

0 за отговор № 1

Ако ще използвате TypeScript, тогава трябва да използвате класове / интерфейси / модули на TypeScript. Това ще ви позволи да получите всички предимства на статичното въвеждане, което TypeScript предоставя.

Забележка: Все още можете да получите предимствата с WinJS.Клас, но ще трябва да създадете интерфейс за класовете, които след това можете да използвате, за да кажете на компилатора TypeScript типа. Би било по-изрично и лесно бихте могли да забравите да го направите на места и да пропуснете допълнителните ползи от въвеждането.


0 за отговор № 2

Вижте WinJS.Utilities.requireSupportedForProcessing , Според това можете да използвате класически TypeScript модул и дефиниция на класа. Например:

module AnyModule
{
export class AnyClass
{
constructor()
{

}

public AnyMethod()
{
}
}
}

и след това маркирайте този клас (който е фактически функция) за обработка в декларативния код чрез повикване WinJS.Utilities.markSupportedForProcessing, След тази проста модификация:

module AnyModule
{
export class AnyClass
{
constructor()
{

}

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

Можете да използвате този начин за класическа функция:

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

, Обаждането на метода WinJS.Utilities.requireSupportedForProcessing може да се използва за валидиране на регистрацията.
Ако не е необходимо да използвате класа или функцията в декларативното повикване, тогава извикването на WinJS.Utilities.markSupportedForProcessing (...) може да бъде пропуснато.