在Vue3 setup區塊聲明的類型,可以正確地被其他.vue檔解析,但是引用到.ts檔時就會出現以下錯誤:
在Vue3 setup區塊聲明的類型,可以正確地被其他.vue檔解析,但是引用到.ts檔時就會出現以下錯誤:
TS2614: Module '"*.vue"' has no exported member 'ModalConfig'. Did you mean to use 'import ModalConfig from "*.vue"' instead?
我覺得應該是跟shims-vue.d.ts中的配置有關,所以我試著把輸出的類型(ModalConfig)也聲明進去時,ts就不會報錯了,如下:
/* eslint-disable */
declare module '*.vue' {
import type { DefineComponent } from 'vue'
const component: DefineComponent<{}, {}, any>
export default component
export { ModalConfig }
}
但這肯定不是解決辦法的,不知道是否有人知道如何正確處置呢?
PS: 之所以要這麼作,是因為該類型聲明是專屬於該.vue檔的內容,所以我希望能集中在一個檔,才最好管理、最清楚。 退而求其次的作法是將類型聲明從.vue檔提出,另外創一個ts檔放,但是這樣需要多維護該ts檔跟對應的.vue檔的關聯,比如說要規範相同命名,或者是規範須放置在同個資料夾下等等,我都覺得差強人意。
Originally posted by @hkk2018 in https://github.com/vuejs/core/discussions/6009