首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何同时使用WinJS和Typescript?案例: WinJS类与Typescript类

如何同时使用WinJS和Typescript?案例: WinJS类与Typescript类
EN

Stack Overflow用户
提问于 2014-04-05 04:15:07
回答 2查看 693关注 0票数 2

在WinJS中,我这样声明类:

代码语言:javascript
复制
WinJS.Namespace.define('MyNamespace', {
    MyClass: WinJS.Class.define(function ctor() {
        //constructor
    },
    {
        //instance members
    },
    {
        //static members
    })
});

但在Typescript中,我使用:

代码语言:javascript
复制
module MyNamespace {
    class MyClass {
        constructor() {

        }
    }
}

因此,我想在WinJS项目中使用Typescript的请求/导入行为。实现这一目标的最佳方法是什么?

EN

回答 2

Stack Overflow用户

发布于 2014-04-22 04:17:09

如果你打算使用TypeScript,那么你应该使用TypeScript的类/接口/模块。这将允许您获得TypeScript提供的静态类型的所有好处。

注意:您仍然可以使用WinJS.Class获得好处,但是您需要为类创建一个接口,然后可以使用该接口告诉TypeScript编译器类型。它将更加明确,而且您很容易忘记在某些地方这样做,从而错过键入的额外好处。

票数 0
EN

Stack Overflow用户

发布于 2016-05-01 23:18:46

请参阅WinJS.Utilities.requireSupportedForProcessing。根据这一点,您可以使用经典的TypeScript模块和类定义。例如:

代码语言:javascript
复制
module AnyModule
{
  export class AnyClass
  {
    constructor()
    {

    }

    public AnyMethod()
    {
    }
  }
}

然后通过调用WinJS.Utilities.markSupportedForProcessing在声明性代码中将这个类(实际上是函数)标记为processing。在这个简单的修改之后:

代码语言:javascript
复制
module AnyModule
{
  export class AnyClass
  {
    constructor()
    {

    }

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

您可以将此方法用于经典函数:

代码语言:javascript
复制
module AnyModule
{
  function AnyFunc()
  {
  }
  WinJS.Utilities.markSupportedForProcessing(AnyFunc);
}

。然后,可以使用调用WinJS.Utilities.requireSupportedForProcessing方法来验证注册。

如果不需要在声明性调用中使用类或函数,则调用WinJS.Utilities.markSupportedForProcessing(...)可以省略。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22872207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档