首页 > 解决方案 > 从特定的 node_modules 包导入 d.ts 定义

问题描述

我有 vue2 + vuetify + typescript starter 应用程序。它具有shims-vuetify.d.ts包含以下内容的文件:

declare module 'vuetify/lib/framework' {
  import Vuetify from 'vuetify'
  export default Vuetify
}

然后它/plugins/vuetify.ts像这样导入到文件中:

import Vue from 'vue'
import Vuetify from 'vuetify/lib/framework'

Vue.use(Vuetify)

export default new Vuetify({
})

它工作得很好。

我的目标是在 typescript 中扩展一些 vuetify 组件。为此,我从vuetify/src/(而不是 js 代码vuetify/lib)导入打字稿源代码:

import VAutocomplete from 'vuetify/src/components/VAutocomplete'

export default VAutocomplete.extend({
  ...my stuff..
}) 

它可以工作,但是 typescript 在编译过程中会引发很多错误。

它看不到node_modules/vuetify/src/globals.d.ts文件。

问题是:如何指定 typescript 来使用这个声明文件?

我想正确的方法是创建shims-vuetify-src.d.ts文件并以某种方式引用globals.d.ts那里,但现在我无法正确地做到这一点。

标签: typescriptvue.jsvuetify.jsnode-modulesshim

解决方案


推荐阅读