打字稿公共功能

时间:2017-11-02 16:19:29

标签: javascript typescript kendo-ui

在TypeScript中我有这个简单的代码:

select Column1 from Table where Column1 regexp '^';

它生成:

namespace Customer {
   function onOpen() {
   }
 }

为了让Kendo使用var Customer; (function (Customer) { function onOpen() { } })(Customer || (Customer = {})); ,JS需要看起来像这样(注意onOpen)。这可能吗?:

onOpen

2 个答案:

答案 0 :(得分:5)

添加export

namespace Customer {
   export function onOpen() {
   }
 }

产地:

var Customer;
(function (Customer) {
    function onOpen() {
    }
    Customer.onOpen = onOpen;
})(Customer || (Customer = {}));

答案 1 :(得分:3)

您需要导出公开的属性,并且由于函数是一等公民,您可以像这样编写打字稿代码:

namespace Customer {
  export const onOpen = () => {}
}

或者代替正常功能的lambda

namespace Customer {
  export const onOpen = function() {}
}

或者这将起作用

namespace Customer {
  export function onOpen() { }
}

这将生成一个指向函数而不是函数成员的属性 - 实际上基本上是相同的。

Javascript输出:

var Customer;
(function (Customer) {
    Customer.onOpen = function () { };
})(Customer || (Customer = {}));