Декораторы классов TypeScript - добавить метод класса

Как определить свойство с помощью TypeScript и декораторов?

Например, у меня есть этот класс декоратор:

function Entity<TFunction extends Function>(target: TFunction): TFunction {
    Object.defineProperty(target.prototype, 'test', {
        value: function() {
            console.log('test call');
            return 'test result';
        }
    });
    return target;
}

И использовать это:

@Entity
class Project {
    //
}

let project = new Project();
console.log(project.test());

У меня есть этот консольный журнал:

test call            entity.ts:5
test result          entity.ts:18

Этот код работает правильно, но tsc возвращает ошибку:

entity.ts(18,21): error TS2339: Property 'test' does not exist on type 'Project'.

Как исправить эту ошибку?

Ответы на вопрос(1)

Ваш ответ на вопрос