打字稿声明:模块检测和名称空间

时间:2018-12-19 22:12:36

标签: typescript h3

我正在尝试为h3编写一个声明文件。请参见函数reference

首先,我不确定打字稿如何检测定义文件。

如果放置在文件夹/src/@types/<any filename>.d.ts中,它会检测到我的定义,其中包含以下内容

declare module 'h3-js' {
    export type h3ToGeoBoundary = any;
    ...
}

但是,我也读到您可以创建一个像/src/@types/h3-js/index.d.ts这样的文件夹,但是如果这样写,它将无法检测到定义

export = h3;
export as namespace h3;

declare namespace h3 {
  export type h3ToGeoBoundary = () => void; // TODO: correct types
}

哪种方法都没关系,但是我不确定如何用第一种方法导出名称空间。这样,我得到错误Property 'h3ToGeoBoundary' does not exist on type 'typeof import("h3-js")'.

请提供一个最小的文件,并为h3ToGeoBoundary提供有效的导出,以便我进一步扩展。

1 个答案:

答案 0 :(得分:0)

由于模块仅导出一堆函数,因此您可以将它们定义为单独的导出(使用第一种方法):

declare module "h3-js" {
  export function h3ToGeoBoundary(): void;
}