利用ts文件为vue组件添加智能提示

warning: 这篇文章距离上次修改已过701天,其中的内容可能已经有所变动。

当在封装高阶组件时,不可避免的会屏蔽掉原来基础组件的各种提示,比如:props, events之类的。
此时可以用ts为其补充一下类型声明:

import Vue from 'vue';
import { Prop } from 'vue-property-decorator';

export declare class BusinessDataTable extends Vue {
    @Prop() headers: any[];
    @Prop() items: any[];
}

不知道是不是因为使用了class写法,也只能用vue-property-decorator提供的装饰器才能进行提示

hoc组件:

import { Vue, Component } from 'vue-property-decorator';
import { CreateElement, VNode } from 'vue';
import { VDataTable } from 'vuetify/lib/components';

@Component
export default class BusinessDataTable extends Vue {
    render(createElement: CreateElement): VNode {
        return createElement(VDataTable, {
            props: {
                disablePagination: true,
                disableSort: true,
                disableFiltering: true,
                hideDefaultFooter: true,
                ...this.$attrs,
            },
            on: this.$listeners,
            scopedSlots: this.$scopedSlots,
        });
    }
}

智能提示效果:

image.pngimage.png

需要研究一下slot怎么提示出来

none
最后修改于:2022年12月20日 22:51

评论已关闭