我在写贪吃蛇练习项目的时候eslint报了一个错误
有道翻译过来是 所有的X签名都应该是相邻的@typescript-eslint/adjacent-overload-signatures
报错原因是我写的在Snake类里面写的get和set,eslint的规范写法是X的get方法必须要与它的set方法相邻
这是报错的代码:
class Snake{
head: HTMLElement; // 蛇头元素
bodies: HTMLCollection; // 蛇的身体
element: HTMLElement;
constructor(snakeEle:HTMLElement,head:HTMLElement){
this.element = snakeEle;
this.head = head
this.bodies = snakeEle.getElementsByTagName("div")
}
// 获取蛇头的X坐标
get X(){
return this.head.offsetLeft
}
// 获取蛇头的Y坐标
get Y(){
return this.head.offsetTop
}
// 设置蛇头的X坐标
set X(value:number){
this.head.style.left = value + 'px'
}
// 设置蛇头的Y坐标
set Y(value:number){
this.head.style.top = value + 'px'
}
addBody(){
const div = document.createElement("div")
this.element.insertAdjacentElement("beforeend", div)
}
}
正确的代码:
class Snake{
head: HTMLElement; // 蛇头元素
bodies: HTMLCollection; // 蛇的身体
element: HTMLElement;
constructor(snakeEle:HTMLElement,head:HTMLElement){
this.element = snakeEle;
this.head = head
this.bodies = snakeEle.getElementsByTagName("div")
}
// 获取蛇头的X坐标
get X(){
return this.head.offsetLeft
}
// 设置蛇头的X坐标
set X(value:number){
this.head.style.left = value + 'px'
}
// 获取蛇头的Y坐标
get Y(){
return this.head.offsetTop
}
// 设置蛇头的Y坐标
set Y(value:number){
this.head.style.top = value + 'px'
}
addBody(){
const div = document.createElement("div")
this.element.insertAdjacentElement("beforeend", div)
}
}