Добавление метода в класс Typescript с использованием прототипа - PullRequest
0 голосов
/ 07 июня 2019

enter image description here

Кажется, я не могу добавить метод в мой класс Typescript, используя прототип.Visual Studio предупреждает меня, что функция не существует в целевом типе.

Я читал кое-что об объявлении дополнительного интерфейса для моего типа, который включал бы определение метода, который я хочу добавить, но это не оченьМне ясно, как я должен сделать это после импорта моего типа с import.На самом деле я не могу просто сделать:

import { EcommerceCartItem } from "../classes/EcommerceCartItem";

interface EcommerceCartItem {
    myMethod: any
}

EcommerceCartItem.prototype.myMethod = function () {
    return null;
};

..., потому что объявление импорта конфликтует с локальным объявлением EcommerceCartItem.Так, как я должен идти об этом?

1 Ответ

1 голос
/ 07 июня 2019

Вы должны объявить интерфейс в соответствующем модуле, чтобы он считался дополнением:

import { EcommerceCartItem } from "../classes/EcommerceCartItem";
declare module "../classes/EcommerceCartItem" {
    interface EcommerceCartItem {
        myMethod: any
    }
}

EcommerceCartItem.prototype.myMethod = function () {
    return null;
};
...