typescript - settern och gettern för samma egenskap utlöser eslint-felet 'signatures should be adjacent'


Jag skapade en klass (web-komponent) där jag deklarerade två setters och getters, en för expressionValue och en annan för scoreValue. Nu får jag dessa fel:

Alla 'expressionValue'-signaturer bör vara intill varandra @typescript-eslint/adjacent-overload-signatures

Alla 'scoreValue'-signaturer bör vara intill varandra @typescript-eslint/adjacent-overload-signatures

Och jag undrar hur jag kan fixa detta fel för att behålla mina setters och getters. Eller är det omöjligt, och det enda sättet att uppnå detta är att sätta detta @typescript-eslint/adjacent-overload-signatures: 0 i .eslintrc.js fil?

class BinaryExpressionItem extends KKWebComponent implements KKBinaryExpressionItem {
    public static TAG: string = `${CONSTANTS.TAG_PREFIX}-binary-expression-tem`;

    private readonly expression: HTMLElement = <HTMLElement>this.shadowRoot.querySelector('var');
    private readonly score: HTMLElement = <HTMLElement>this.shadowRoot.querySelector('mark');

    constructor() {
        super(template);
    }

    set expressionValue(value: string) {
        this.expression.textContent = value;
    }

    set scoreValue(value: string) {
        this.score.textContent = value;
    }

    get expressionValue(): string {
        return this.expression.textContent ?? '';
    }

    get scoreValue(): string {
        return this.score.textContent ?? '';
    }
}

Svar #1

Nyckelordet här är adjacent. Så du behöver placera get och set för samma egenskap intill varandra:

class BinaryExpressionItem extends KKWebComponent implements KKBinaryExpressionItem {
    public static TAG: string = `${CONSTANTS.TAG_PREFIX}-binary-expression-tem`;

    private readonly expression: HTMLElement = <HTMLElement>this.shadowRoot.querySelector('var');
    private readonly score: HTMLElement = <HTMLElement>this.shadowRoot.querySelector('mark');

    constructor() {
        super(template);
    }

    get expressionValue(): string {                // The ones for expressionValue
        return this.expression.textContent ?? '';  // The ones for expressionValue
    }                                              // The ones for expressionValue
                                                   // The ones for expressionValue
    set expressionValue(value: string) {           // The ones for expressionValue
        this.expression.textContent = value;       // The ones for expressionValue
    }                                              // The ones for expressionValue

    get scoreValue(): string {                     // The ones for scoreValue
        return this.score.textContent ?? '';       // The ones for scoreValue
    }                                              // The ones for scoreValue
                                                   // The ones for scoreValue
    set scoreValue(value: string) {                // The ones for scoreValue
        this.score.textContent = value;            // The ones for scoreValue
    }                                              // The ones for scoreValue
}

Jag har alltid listat gettern först, sedan settern, men jag tror inte att ESLint bryr sig, så länge de två delarna av egenskapen är intill varandra.

Relaterade artiklar