在Typescript中导出函数

jac*_*891 2 javascript module typescript

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

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

function populate() {
...
}

module portfolio.charts {
   export function foo(){
   ...
   }
}
Run Code Online (Sandbox Code Playgroud)

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

 function populate(): void;
 module portfolio.charts {
       function foo(): void;
 }
Run Code Online (Sandbox Code Playgroud)

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

Fen*_*ton 7

TypeScript规范有点干,所以这里有一些例子.

例1

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

    function myOtherFunction() {
        alert('Test Again');
    }
}
Run Code Online (Sandbox Code Playgroud)

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

module MyModule {
}
Run Code Online (Sandbox Code Playgroud)

因此,要在宣言中看到某些内容,它要么......

  1. 需要在全球范围内,例如,或者MyModulepopulate你的例子,或者

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

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