В настоящее время я изучаю TypeScript, но я полностью озадачен тем, как реализовать методы расширения для неглобальных интерфейсов. Рассмотрим следующий пример: скажем, у меня есть interface
, определяющий Cart
примерно так:
interface Cart {
id(): string,
name(): string,
quantity(): number
/* Other methods */
}
Затем я хотел бы добавить метод расширения, подобный следующему:
Cart.prototype.isValid = function() {
return this.quantity() > 0;
}
Это, очевидно, не работает, поскольку Cart
не является типом, но я запутался, потому что Promise
также определен как interface
, но я могу успешно добавить методы расширения к нему. Например:
declare global {
interface Promise<T> {
hello(): string
}
}
Promise.prototype.hello = function() {
return "Hello!";
}
export {};
Можно ли расширить неглобальные интерфейсы, такие как Cart
, и если да, то как мне это сделать?