Typescript中的导出函数

Export function in Typescript

本文关键字:函数 Typescript      更新时间:2023-09-26

我有一个.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文件添加为对另一个文件的依赖,我可以使用所有函数和模块。我可以声明它们是私有的吗?

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

示例1

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

在这个例子中,MyModule是一个全局模块(它不在任何其他模块中),所以这个出现在定义文件中。MyClass, myFunctionmyOtherFunction在定义中是不可见的:

module MyModule {
}

因此,要在声明中使某些内容可见,它要么…

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

  2. 需要前缀export关键字

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