Машинопись | Декоратор, кажется, не регистрируется должным образом - PullRequest
0 голосов
/ 21 января 2020

У меня проблема в настоящее время при работе с декораторами Typescript в Angular.

Я пытаюсь создать простой декоратор, в котором вы можете указать тип ввода для элемента управления или выбрать опции и т. Д. c идея заключается в том, что я могу построить форму только из модели.

export class UserForm {
    @Input('text')
    @Required()
    firstName: string;

    @Input('text')
    @Required()
    lastName: string;
}

Требуемый декоратор работает отлично, и у меня нет абсолютно никаких проблем с ним, но по какой-то причине директива @Input () Деос, кажется, не работает. (Я знаю, что имя конфликтует с Angulars Input, но я на 100% гарантирую, что я использую правильный). В настоящее время у меня очень простой c декоратор ...

export const Input = (inputType: string) => {
    return (): PropertyDecorator => {
        return (target: object, propertyKey: string) => {
            console.log(inputType, target, propertyKey);
        };
    };
};

всякий раз, когда я делаю это, я получаю следующую ошибку

'Input (' text ')' принимает тоже несколько аргументов, которые будут использоваться в качестве декоратора здесь. Вы хотели сначала вызвать его и написать '@Input (' text ') ()'?

Я буквально не знаю, почему это происходит, я попытался вставить функцию сверху файла и не экспортируя.

Также стоит упомянуть, что это делается в настройке библиотеки Angular, и я где-то читал, что это связано с набором текста, но я не был слишком уверен, потому что требуемая работа.

...