Можно. Вы можете расширить его, определив расширение для модуля, в котором оно определено.
Создайте файл с именем image-extension.ts
или что-то в этом роде.
Теперь, если в этом файле вы импортируете Image
следующим образом:
import { Image } from `image`;
declare module 'image' { // same name than in the import!
export interface Image {
newMethod: () => void;
}
}
Image.prototype.newMethod = function() {
console.log('new method');
}
Теперь, куда бы вы ни импортировали этот файл, вы можете использовать этот метод:
import { Image } from 'image';
import 'image-extension'; // import just for side-effects
Конечно, вы также можете добавить declare module
в файл d.ts
, чтобы он автоматически загружался, а в другом файле добавить истинные функции в прототип, убедившись, что такой файл загружается в ваше приложение.