在WinJS中,我这样声明类:
WinJS.Namespace.define('MyNamespace', {
MyClass: WinJS.Class.define(function ctor() {
//constructor
},
{
//instance members
},
{
//static members
})
});但在Typescript中,我使用:
module MyNamespace {
class MyClass {
constructor() {
}
}
}因此,我想在WinJS项目中使用Typescript的请求/导入行为。实现这一目标的最佳方法是什么?
发布于 2014-04-22 04:17:09
如果你打算使用TypeScript,那么你应该使用TypeScript的类/接口/模块。这将允许您获得TypeScript提供的静态类型的所有好处。
注意:您仍然可以使用WinJS.Class获得好处,但是您需要为类创建一个接口,然后可以使用该接口告诉TypeScript编译器类型。它将更加明确,而且您很容易忘记在某些地方这样做,从而错过键入的额外好处。
发布于 2016-05-01 23:18:46
请参阅WinJS.Utilities.requireSupportedForProcessing。根据这一点,您可以使用经典的TypeScript模块和类定义。例如:
module AnyModule
{
export class AnyClass
{
constructor()
{
}
public AnyMethod()
{
}
}
}然后通过调用WinJS.Utilities.markSupportedForProcessing在声明性代码中将这个类(实际上是函数)标记为processing。在这个简单的修改之后:
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(...)可以省略。
https://stackoverflow.com/questions/22872207
复制相似问题