打字稿声明:模块检测和命名空间
typescript declaration: module detection and namespace
我正在尝试为 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
导出工作,以便我可以进一步扩展。
由于模块只是导出一堆函数,您可以将它们定义为单独的导出(使用您的第一种方法):
declare module "h3-js" {
export function h3ToGeoBoundary(): void;
}
我正在尝试为 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
导出工作,以便我可以进一步扩展。
由于模块只是导出一堆函数,您可以将它们定义为单独的导出(使用您的第一种方法):
declare module "h3-js" {
export function h3ToGeoBoundary(): void;
}