Я написал плагин jspdf-autotable для jspdf .Jspdf экспортирует класс jsPDF
, который я хочу дополнить новым методом autoTable
, как только пользователь импортирует мой плагин.При чтении раздела расширения модуля в Объявление слияния кажется, что должно работать следующее:
// Existing index.d.ts for jspdf
// https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/jspdf/index.d.ts
declare module 'jspdf' {
class jsPDF {
constructor(orientation?: any);
setPage(n:number):jsPDF;
save(filename:string):jsPDF;
// ...
}
namespace jsPDF {}
export = jsPDF;
}
// Proposed index.d.ts for the plugin jspdf-autotable
import * as jsPDF from 'jspdf';
declare module 'jspdf' {
export function staticMethod(); // Test
interface jsPDF {
autoTable(): jsPDF;
}
}
// Usage
import * as jsPDF from 'jspdf';
import 'jspdf-autotable';
jsPDF.staticMethod() // This works
let doc = new jsPDF();
doc.autoTable(); // This gives error: Property 'autoTable' does not exist on type
doc.save('table.pdf');
Однако метод autoTable не найден.Обратите внимание, что статический метод работает по какой-то причине.Есть ли способ сделать это без изменения объявлений jspdf?Если нет, то как я могу обновить декларации jspdf для разрешения плагинов, подобных этому (официально поддерживается )?