Skip to content

Commit a175f05

Browse files
authored
fix(type): 🐛 修复vue>=2.7版本的GlobalComponents类型声明问题 (#464)
1 parent 3d7775c commit a175f05

1 file changed

Lines changed: 102 additions & 93 deletions

File tree

Lines changed: 102 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -1,106 +1,115 @@
11
/*
22
* @Author: weisheng
33
* @Date: 2023-09-25 17:28:12
4-
* @LastEditTime: 2024-07-05 14:37:28
5-
* @LastEditors: weisheng
4+
* @LastEditTime: 2024-07-26 17:18:00
5+
* @LastEditors: wyl86
66
* @Description:
77
* @FilePath: \wot-design-uni\src\uni_modules\wot-design-uni\global.d.ts
88
* 记得注释
99
*/
1010
import '@vue/runtime-core'
1111

12+
// Vue >= 2.7
13+
declare module 'vue' {
14+
// Helper for Vue - Official
15+
export interface GlobalComponents extends WotDesignUniComponents { }
16+
}
17+
18+
// Vue < 2.7
1219
declare module '@vue/runtime-core' {
1320
// Helper for Volar
14-
export interface GlobalComponents {
15-
WdActionSheet: typeof import('./components/wd-action-sheet/wd-action-sheet.vue')['default']
16-
WdBadge: typeof import('./components/wd-badge/wd-badge.vue')['default']
17-
WdButton: typeof import('./components/wd-button/wd-button.vue')['default']
18-
WdCalendar: typeof import('./components/wd-calendar/wd-calendar.vue')['default']
19-
WdCalendarView: typeof import('./components/wd-calendar-view/wd-calendar-view.vue')['default']
20-
WdCard: typeof import('./components/wd-card/wd-card.vue')['default']
21-
WdCell: typeof import('./components/wd-cell/wd-cell.vue')['default']
22-
WdCellGroup: typeof import('./components/wd-cell-group/wd-cell-group.vue')['default']
23-
WdCheckbox: typeof import('./components/wd-checkbox/wd-checkbox.vue')['default']
24-
WdCheckboxGroup: typeof import('./components/wd-checkbox-group/wd-checkbox-group.vue')['default']
25-
WdCol: typeof import('./components/wd-col/wd-col.vue')['default']
26-
WdColPicker: typeof import('./components/wd-col-picker/wd-col-picker.vue')['default']
27-
WdCollapse: typeof import('./components/wd-collapse/wd-collapse.vue')['default']
28-
WdCollapseItem: typeof import('./components/wd-collapse-item/wd-collapse-item.vue')['default']
29-
WdConfigProvider: typeof import('./components/wd-config-provider/wd-config-provider.vue')['default']
30-
WdCurtain: typeof import('./components/wd-curtain/wd-curtain.vue')['default']
31-
WdDatetimePicker: typeof import('./components/wd-datetime-picker/wd-datetime-picker.vue')['default']
32-
WdDatetimePickerView: typeof import('./components/wd-datetime-picker-view/wd-datetime-picker-view.vue')['default']
33-
WdDivider: typeof import('./components/wd-divider/wd-divider.vue')['default']
34-
WdDropMenu: typeof import('./components/wd-drop-menu/wd-drop-menu.vue')['default']
35-
WdDropMenuItem: typeof import('./components/wd-drop-menu-item/wd-drop-menu-item.vue')['default']
36-
WdGrid: typeof import('./components/wd-grid/wd-grid.vue')['default']
37-
WdGridItem: typeof import('./components/wd-grid-item/wd-grid-item.vue')['default']
38-
WdIcon: typeof import('./components/wd-icon/wd-icon.vue')['default']
39-
WdImg: typeof import('./components/wd-img/wd-img.vue')['default']
40-
WdImgCropper: typeof import('./components/wd-img-cropper/wd-img-cropper.vue')['default']
41-
WdInput: typeof import('./components/wd-input/wd-input.vue')['default']
42-
WdInputNumber: typeof import('./components/wd-input-number/wd-input-number.vue')['default']
43-
WdLoading: typeof import('./components/wd-loading/wd-loading.vue')['default']
44-
WdLoadmore: typeof import('./components/wd-loadmore/wd-loadmore.vue')['default']
45-
WdMessageBox: typeof import('./components/wd-message-box/wd-message-box.vue')['default']
46-
WdOverlay: typeof import('./components/wd-overlay/wd-overlay.vue')['default']
47-
WdNoticeBar: typeof import('./components/wd-notice-bar/wd-notice-bar.vue')['default']
48-
WdPagination: typeof import('./components/wd-pagination/wd-pagination.vue')['default']
49-
WdPicker: typeof import('./components/wd-picker/wd-picker.vue')['default']
50-
WdPickerView: typeof import('./components/wd-picker-view/wd-picker-view.vue')['default']
51-
WdPopover: typeof import('./components/wd-popover/wd-popover.vue')['default']
52-
WdPopup: typeof import('./components/wd-popup/wd-popup.vue')['default']
53-
WdProgress: typeof import('./components/wd-progress/wd-progress.vue')['default']
54-
WdRadio: typeof import('./components/wd-radio/wd-radio.vue')['default']
55-
WdRadioGroup: typeof import('./components/wd-radio-group/wd-radio-group.vue')['default']
56-
WdRate: typeof import('./components/wd-rate/wd-rate.vue')['default']
57-
WdResize: typeof import('./components/wd-resize/wd-resize.vue')['default']
58-
WdRow: typeof import('./components/wd-row/wd-row.vue')['default']
59-
WdSearch: typeof import('./components/wd-search/wd-search.vue')['default']
60-
WdSelectPicker: typeof import('./components/wd-select-picker/wd-select-picker.vue')['default']
61-
WdSlider: typeof import('./components/wd-slider/wd-slider.vue')['default']
62-
WdSortButton: typeof import('./components/wd-sort-button/wd-sort-button.vue')['default']
63-
WdStatusTip: typeof import('./components/wd-status-tip/wd-status-tip.vue')['default']
64-
WdStep: typeof import('./components/wd-step/wd-step.vue')['default']
65-
WdSteps: typeof import('./components/wd-steps/wd-steps.vue')['default']
66-
WdSticky: typeof import('./components/wd-sticky/wd-sticky.vue')['default']
67-
WdStickyBox: typeof import('./components/wd-sticky-box/wd-sticky-box.vue')['default']
68-
WdSwipeAction: typeof import('./components/wd-swipe-action/wd-swipe-action.vue')['default']
69-
WdSwitch: typeof import('./components/wd-switch/wd-switch.vue')['default']
70-
WdTab: typeof import('./components/wd-tab/wd-tab.vue')['default']
71-
WdTabs: typeof import('./components/wd-tabs/wd-tabs.vue')['default']
72-
WdTag: typeof import('./components/wd-tag/wd-tag.vue')['default']
73-
WdToast: typeof import('./components/wd-toast/wd-toast.vue')['default']
74-
WdTooltip: typeof import('./components/wd-tooltip/wd-tooltip.vue')['default']
75-
WdTransition: typeof import('./components/wd-transition/wd-transition.vue')['default']
76-
WdUpload: typeof import('./components/wd-upload/wd-upload.vue')['default']
77-
WdNotify: typeof import('./components/wd-notify/wd-notify.vue')['default']
78-
WdWatermark: typeof import('./components/wd-watermark/wd-watermark.vue')['default']
79-
WdCircle: typeof import('./components/wd-circle/wd-circle.vue')['default']
80-
WdSwiper: typeof import('./components/wd-swiper/wd-swiper.vue')['default']
81-
WdSwiperNav: typeof import('./components/wd-swiper-nav/wd-swiper-nav.vue')['default']
82-
WdSegmented: typeof import('./components/wd-segmented/wd-segmented.vue')['default']
83-
WdTabbar: typeof import('./components/wd-tabbar/wd-tabbar.vue')['default']
84-
WdTabbarItem: typeof import('./components/wd-tabbar-item/wd-tabbar-item.vue')['default']
85-
WdNavbar: typeof import('./components/wd-navbar/wd-navbar.vue')['default']
86-
WdNavbarCapsule: typeof import('./components/wd-navbar-capsule/wd-navbar-capsule.vue')['default']
87-
WdTable: typeof import('./components/wd-table/wd-table.vue')['default']
88-
WdTableCol: typeof import('./components/wd-table-col/wd-table-col.vue')['default']
89-
WdSidebar: typeof import('./components/wd-sidebar/wd-sidebar.vue')['default']
90-
WdSidebarItem: typeof import('./components/wd-sidebar-item/wd-sidebar-item.vue')['default']
91-
WdFab: typeof import('./components/wd-fab/wd-fab.vue')['default']
92-
WdCountDown: typeof import('./components/wd-count-down/wd-count-down.vue')['default']
93-
WdNumberKeyboard: typeof import('./components/wd-number-keyboard/wd-number-keyboard.vue')['default']
94-
WdGap: typeof import('./components/wd-gap/wd-gap.vue')['default']
95-
WdPasswordInput: typeof import('./components/wd-password-input/wd-password-input.vue')['default']
96-
WdForm: typeof import('./components/wd-form/wd-form.vue')['default']
97-
WdTextarea: typeof import('./components/wd-textarea/wd-textarea.vue')['default']
98-
WdVideoPreview: typeof import('./components/wd-video-preview/wd-video-preview.vue')['default']
99-
WdBacktop: typeof import('./components/wd-backtop/wd-backtop.vue')['default']
100-
WdSkeleton: typeof import('./components/wd-skeleton/wd-skeleton.vue')['default']
101-
WdIndexBar: typeof import('./components/wd-index-bar/wd-index-bar.vue')['default']
102-
WdIndexAnchor: typeof import('./components/wd-index-anchor/wd-index-anchor.vue')['default']
103-
}
21+
export interface GlobalComponents extends WotDesignUniComponents { }
22+
}
23+
24+
interface WotDesignUniComponents {
25+
WdActionSheet: typeof import('./components/wd-action-sheet/wd-action-sheet.vue')['default']
26+
WdBadge: typeof import('./components/wd-badge/wd-badge.vue')['default']
27+
WdButton: typeof import('./components/wd-button/wd-button.vue')['default']
28+
WdCalendar: typeof import('./components/wd-calendar/wd-calendar.vue')['default']
29+
WdCalendarView: typeof import('./components/wd-calendar-view/wd-calendar-view.vue')['default']
30+
WdCard: typeof import('./components/wd-card/wd-card.vue')['default']
31+
WdCell: typeof import('./components/wd-cell/wd-cell.vue')['default']
32+
WdCellGroup: typeof import('./components/wd-cell-group/wd-cell-group.vue')['default']
33+
WdCheckbox: typeof import('./components/wd-checkbox/wd-checkbox.vue')['default']
34+
WdCheckboxGroup: typeof import('./components/wd-checkbox-group/wd-checkbox-group.vue')['default']
35+
WdCol: typeof import('./components/wd-col/wd-col.vue')['default']
36+
WdColPicker: typeof import('./components/wd-col-picker/wd-col-picker.vue')['default']
37+
WdCollapse: typeof import('./components/wd-collapse/wd-collapse.vue')['default']
38+
WdCollapseItem: typeof import('./components/wd-collapse-item/wd-collapse-item.vue')['default']
39+
WdConfigProvider: typeof import('./components/wd-config-provider/wd-config-provider.vue')['default']
40+
WdCurtain: typeof import('./components/wd-curtain/wd-curtain.vue')['default']
41+
WdDatetimePicker: typeof import('./components/wd-datetime-picker/wd-datetime-picker.vue')['default']
42+
WdDatetimePickerView: typeof import('./components/wd-datetime-picker-view/wd-datetime-picker-view.vue')['default']
43+
WdDivider: typeof import('./components/wd-divider/wd-divider.vue')['default']
44+
WdDropMenu: typeof import('./components/wd-drop-menu/wd-drop-menu.vue')['default']
45+
WdDropMenuItem: typeof import('./components/wd-drop-menu-item/wd-drop-menu-item.vue')['default']
46+
WdGrid: typeof import('./components/wd-grid/wd-grid.vue')['default']
47+
WdGridItem: typeof import('./components/wd-grid-item/wd-grid-item.vue')['default']
48+
WdIcon: typeof import('./components/wd-icon/wd-icon.vue')['default']
49+
WdImg: typeof import('./components/wd-img/wd-img.vue')['default']
50+
WdImgCropper: typeof import('./components/wd-img-cropper/wd-img-cropper.vue')['default']
51+
WdInput: typeof import('./components/wd-input/wd-input.vue')['default']
52+
WdInputNumber: typeof import('./components/wd-input-number/wd-input-number.vue')['default']
53+
WdLoading: typeof import('./components/wd-loading/wd-loading.vue')['default']
54+
WdLoadmore: typeof import('./components/wd-loadmore/wd-loadmore.vue')['default']
55+
WdMessageBox: typeof import('./components/wd-message-box/wd-message-box.vue')['default']
56+
WdOverlay: typeof import('./components/wd-overlay/wd-overlay.vue')['default']
57+
WdNoticeBar: typeof import('./components/wd-notice-bar/wd-notice-bar.vue')['default']
58+
WdPagination: typeof import('./components/wd-pagination/wd-pagination.vue')['default']
59+
WdPicker: typeof import('./components/wd-picker/wd-picker.vue')['default']
60+
WdPickerView: typeof import('./components/wd-picker-view/wd-picker-view.vue')['default']
61+
WdPopover: typeof import('./components/wd-popover/wd-popover.vue')['default']
62+
WdPopup: typeof import('./components/wd-popup/wd-popup.vue')['default']
63+
WdProgress: typeof import('./components/wd-progress/wd-progress.vue')['default']
64+
WdRadio: typeof import('./components/wd-radio/wd-radio.vue')['default']
65+
WdRadioGroup: typeof import('./components/wd-radio-group/wd-radio-group.vue')['default']
66+
WdRate: typeof import('./components/wd-rate/wd-rate.vue')['default']
67+
WdResize: typeof import('./components/wd-resize/wd-resize.vue')['default']
68+
WdRow: typeof import('./components/wd-row/wd-row.vue')['default']
69+
WdSearch: typeof import('./components/wd-search/wd-search.vue')['default']
70+
WdSelectPicker: typeof import('./components/wd-select-picker/wd-select-picker.vue')['default']
71+
WdSlider: typeof import('./components/wd-slider/wd-slider.vue')['default']
72+
WdSortButton: typeof import('./components/wd-sort-button/wd-sort-button.vue')['default']
73+
WdStatusTip: typeof import('./components/wd-status-tip/wd-status-tip.vue')['default']
74+
WdStep: typeof import('./components/wd-step/wd-step.vue')['default']
75+
WdSteps: typeof import('./components/wd-steps/wd-steps.vue')['default']
76+
WdSticky: typeof import('./components/wd-sticky/wd-sticky.vue')['default']
77+
WdStickyBox: typeof import('./components/wd-sticky-box/wd-sticky-box.vue')['default']
78+
WdSwipeAction: typeof import('./components/wd-swipe-action/wd-swipe-action.vue')['default']
79+
WdSwitch: typeof import('./components/wd-switch/wd-switch.vue')['default']
80+
WdTab: typeof import('./components/wd-tab/wd-tab.vue')['default']
81+
WdTabs: typeof import('./components/wd-tabs/wd-tabs.vue')['default']
82+
WdTag: typeof import('./components/wd-tag/wd-tag.vue')['default']
83+
WdToast: typeof import('./components/wd-toast/wd-toast.vue')['default']
84+
WdTooltip: typeof import('./components/wd-tooltip/wd-tooltip.vue')['default']
85+
WdTransition: typeof import('./components/wd-transition/wd-transition.vue')['default']
86+
WdUpload: typeof import('./components/wd-upload/wd-upload.vue')['default']
87+
WdNotify: typeof import('./components/wd-notify/wd-notify.vue')['default']
88+
WdWatermark: typeof import('./components/wd-watermark/wd-watermark.vue')['default']
89+
WdCircle: typeof import('./components/wd-circle/wd-circle.vue')['default']
90+
WdSwiper: typeof import('./components/wd-swiper/wd-swiper.vue')['default']
91+
WdSwiperNav: typeof import('./components/wd-swiper-nav/wd-swiper-nav.vue')['default']
92+
WdSegmented: typeof import('./components/wd-segmented/wd-segmented.vue')['default']
93+
WdTabbar: typeof import('./components/wd-tabbar/wd-tabbar.vue')['default']
94+
WdTabbarItem: typeof import('./components/wd-tabbar-item/wd-tabbar-item.vue')['default']
95+
WdNavbar: typeof import('./components/wd-navbar/wd-navbar.vue')['default']
96+
WdNavbarCapsule: typeof import('./components/wd-navbar-capsule/wd-navbar-capsule.vue')['default']
97+
WdTable: typeof import('./components/wd-table/wd-table.vue')['default']
98+
WdTableCol: typeof import('./components/wd-table-col/wd-table-col.vue')['default']
99+
WdSidebar: typeof import('./components/wd-sidebar/wd-sidebar.vue')['default']
100+
WdSidebarItem: typeof import('./components/wd-sidebar-item/wd-sidebar-item.vue')['default']
101+
WdFab: typeof import('./components/wd-fab/wd-fab.vue')['default']
102+
WdCountDown: typeof import('./components/wd-count-down/wd-count-down.vue')['default']
103+
WdNumberKeyboard: typeof import('./components/wd-number-keyboard/wd-number-keyboard.vue')['default']
104+
WdGap: typeof import('./components/wd-gap/wd-gap.vue')['default']
105+
WdPasswordInput: typeof import('./components/wd-password-input/wd-password-input.vue')['default']
106+
WdForm: typeof import('./components/wd-form/wd-form.vue')['default']
107+
WdTextarea: typeof import('./components/wd-textarea/wd-textarea.vue')['default']
108+
WdVideoPreview: typeof import('./components/wd-video-preview/wd-video-preview.vue')['default']
109+
WdBacktop: typeof import('./components/wd-backtop/wd-backtop.vue')['default']
110+
WdSkeleton: typeof import('./components/wd-skeleton/wd-skeleton.vue')['default']
111+
WdIndexBar: typeof import('./components/wd-index-bar/wd-index-bar.vue')['default']
112+
WdIndexAnchor: typeof import('./components/wd-index-anchor/wd-index-anchor.vue')['default']
104113
}
105114

106-
export {}
115+
export { }

0 commit comments

Comments
 (0)