函数和对象的Typescript定义具有相同的名称

时间:2014-08-14 17:49:44

标签: typescript

下面的loadingOverlay既作为函数又作为包含另一个名为'close'的函数的对象。如何在Typescript定义文件中声明它?

USAGE
$.cmp.loadingOverlay("Please wait...");
$.cmp.loadingOverlay.close("Please wait...");

DECLARATIONS
$.cmd.loadingOverlay = function(message) { ... }
$.cmd.loadingOverlay.close = function(message) { ... }

将loadOverlay声明为函数非常简单,但我无法弄清楚如何添加close方法。

interface JQueryStatic {
    cmp: {
        loadingOverlay(message: string): JQuery;
    }
}

由于

1 个答案:

答案 0 :(得分:3)

interface JQueryStatic {
  cmp: {
    loadingOverlay: {
      (message: string): JQuery;
      close(message: string): void;
    }
  }
}