我正在使用volar+vue2+ts+composiiton api。在证监会模板中,对于自定义组件,volar能够执行类型检查,并在遇到一些错误时给出以下消息。这对我很有好处。

我想知道类型检查是否也适用于第三方包(如element-ui )的组件。当悬停在el-*(来自element-ui的组件)这样的标签上时,volar说它有any的类型,而类型check是不可用的。对于jsx组件,可以将类型添加到shims-tsx.d.ts中的IntrinsicElements中。但IntrinsicElements不适用于证监会模板。是否可以为第三方组件添加类型?
import Vue, { VNode } from 'vue';
declare global {
namespace JSX {
interface Element extends VNode {}
interface ElementClass extends Vue {}
interface IntrinsicElements {
// JSX can add types here
'el-button': any;
[elem: string]: any;
}
}
}正如@Finn所说,element添加了类型。不幸的是,即使El*类是通过vue的components选项导入和注册的,volar似乎无法执行类型检查。在这里,ElHeader应该有一个名为height的字符串类型的道具。但是它被分配给一个没有任何错误信息的数字。

下面的代码片段来自element-ui的源代码
export declare class ElHeader extends ElementUIComponent {
/** Height of the header */
height: string
}发布于 2022-08-10 02:31:22
元素- vue2的ui在套餐中添加了组件类型声明,
所以volar的类型检查遵循包的类型声明。
https://stackoverflow.com/questions/73290117
复制相似问题