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.
