Я немного смущен тем, как вы должны моделировать API в TypScript.Моделирование (long-ish) API в файлах деклараций Typcript
Я пытаюсь моделировать hexo API, который, например, использование, выглядит немного как это:
hexo.extend.tag.register(name, function(args, content){
// ...
}, options);
До сих пор я получил то, что выглядит следующим образом:
//hexo.d.ts
declare module 'hexo' {
namespace extend {
export class tag {
public register: _register;
}
}
}
declare class _register {
name: string;
callback(args: any, content: any);
options: _options;
}
declare class _options {
ends: boolean;
}
Однако , Я получаю такие вопросы, как:
Свойство 'register' не существует в типе 'typeof tag'.
Итак, как я могу моделировать это, кажется, что машинописный текст становится немного сложным после того, как вы объявили класс в пространстве имен в модуле, и ни один из этих типов не может существовать внутри себя?
Что будет a.b.c.d.e.f()
выглядеть в файле .d.ts
?