объявление машинописного текста: обнаружение модуля и пространство имен - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь написать файл декларации для h3.Пожалуйста, посмотрите функцию ссылка .

Во-первых, я не уверен, как машинопись обнаруживает файлы определений.

Он обнаруживает мое определение, если оно помещено в папку /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 голосов
/ 20 декабря 2018

Поскольку модуль просто экспортирует набор функций, вы можете определить их как отдельные экспорты (используя ваш первый подход):

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