В проекте TypeScript я хотел бы использовать стороннюю библиотеку, которая не предоставляет определения типов. Поэтому мне нужно придумать собственное объявление модуля. То, что модуль в основном экспортирует, выглядит так:
const foo = {
bar () {
return 23;
}
};
module.exports = foo;
Итак, теперь вопрос в том, как придумать объявление модуля. Прежде всего, очевидно, что модуль использует default
экспорт, а не именованный. Этот экспорт по умолчанию - это объект, у которого есть методы. Итак, я попробовал это:
declare module 'foo' {
export default {
bar(): number;
};
}
Однако компилятор TypeScript жалуется, что:
Выражение оператора экспорта должно быть идентификатором или квалифицированным именем во внешнем контексте.
Что это значит? Используя bar
, я использовал идентификатор, не так ли? И что означает «квалифицированное имя в окружающем контексте»?