2

我有一个.ts包含模块和模块外部函数的文件,如下所示:

$(function () {
   populate()
});

function populate() {
...
}

module portfolio.charts {
   export function foo(){
   ...
   }
}

使用 Typescript 编译器命令tsc --declaration创建声明文件。该.d.ts文件包含以下代码:

 function populate(): void;
 module portfolio.charts {
       function foo(): void;
 }

为什么要导出populate()函数和模块?portfolio.charts我认为export导出函数或模块的关键字是必要的。如果我将d.ts文件添加为对另一个文件的依赖项,我可以使用所有函数和模块。我可以将它们声明为私有吗?谢谢和对不起我的英语。

4

1 回答 1

7

TypeScript 规范在这方面有点枯燥,所以这里有一些例子。

示例 1

module MyModule {
    class MyClass {
        myFunction() {
            alert('Test');
        }
    }

    function myOtherFunction() {
        alert('Test Again');
    }
}

在本例中,MyModule是一个全局模块(它不在任何其他模块内),因此它将出现在定义文件中。MyClass,myFunction并且myOtherFunction在定义中是不可见的:

module MyModule {
}

因此,要在您的声明中显示某些内容,它要么......

  1. 需要在全局范围内,就像MyModulepopulate的示例中的一样,或者

  2. 需要以export关键字为前缀

在您的示例中,第 1 点适用。

于 2013-03-12T15:36:43.810 回答