Administrator
Administrator
发布于 2025-07-11 / 1 阅读

vue TypeScript 常见的类型警告问题

vs code中,使用vue TypeScript,手写代码时,经常出现类型警告,波浪线等。下面是对应问题的解决方案

获取具体类型

typeof 只能知道某个变量是对象,而使用Object.prototype.toString.call可以知道具体的类型名字

console.log(Object.prototype.toString.call(children)); // 使用 toString.call 获取更具体类型

属性警告

children是一个HTMLCollection对象,但是children[1]好像认为是一个Element对象,这个对象没有offsetHeight,但是实际上是一个HTMLELement对象,是有这个属性的,经常出现这个问题,这时候只需要使用as语法,让其知道是HTMLElement即可

例子1:

slotContainHeight.value.push((children[i] as HTMLElement).offsetHeight);

例子2:

//items.push(item) //有警告,item认为是Element对象
items.push((item as HTMLElement)) //无警告