Я пишу определения для существующей библиотеки функциональных модулей, которая предоставляет следующий API:
fn().from(opts: Options)
// and
fn().from.string(path: String)
О слиянии объявлений я узнал здесь. Где что-то говорится о многократном объявлении функции с одним и тем же именем для перегрузок. Но там ничего не говорится о написании типов для функции и свойства, живущих в одном месте.
Тем не менее я попытался написать:
export interface Test {
from(path: string): ToOptionsBuilder;
}
export interface Test {
from: FromOptionsBuilder;
}
Но, как и ожидалось, компилятор жалуется: Subsequent property declarations must have the same type.
Могу ли я что-нибудь с этим сделать?
В случае необходимости библиотека markdown-pdf.