如何包含节点模块包的类型定义?
How do I include the type definition of a node module package?
我正在尝试包含 vue-router 4 包中的 Typescript 类型定义,因此我可以使用其中一种类型来构建路由数组,只是为了看看我是否可以获得更好的错误而不是我目前在创建预填充数组时生成的怪物。目前我在尝试使用 RouteRecordRaw
类型定义数组时遇到以下错误:
TS2304: Cannot find name 'RouteRecordRaw'.
这在 node_modules/vue-router/dist/vue-router.d.ts
中定义。我的 tsconfig.json 包含 compilerOptions
键和 types
键。据我了解,它将尝试在 typeRoots
中定义的任何内容下查找 types
下定义的所有文件夹。如果未定义 typeRoots
,它将使用默认值 [ 'node_modules/@types' ]
。我尝试通过添加 node_modules
、node_modules/vue-router
和 node_modules/vue-router/dist
并将 vue-router
和 dist
添加到 types
来解决这个问题,但似乎并不多正在发生。
我尝试按照 中的建议添加注释 /// <reference types="vue-router" />
,这是由 typescript 提取的(如果我拼错它,它会出错),但也没有帮助。
我似乎也无法以任何其他方式包含类型定义(除非我 copy/paste 我猜是我自己的类型文件,但我想避免这种情况)。该类型在前面提到的文件中导出为 export declare type RouteRecordRaw = RouteRecordSingleView | RouteRecordMultipleViews | RouteRecordRedirect;
。是否有另一种方法来包含此类型定义?
事实证明,我所做的任何事情都不需要做。我已经在文件顶部有一个 import * as VueRouter from 'vue-router';
。事实证明,您可以像导入任何其他内容一样导入类型。正确的语法结果是:
export const routes: VueRouter.RouteRecordRaw[] = [];
我正在尝试包含 vue-router 4 包中的 Typescript 类型定义,因此我可以使用其中一种类型来构建路由数组,只是为了看看我是否可以获得更好的错误而不是我目前在创建预填充数组时生成的怪物。目前我在尝试使用 RouteRecordRaw
类型定义数组时遇到以下错误:
TS2304: Cannot find name 'RouteRecordRaw'.
这在 node_modules/vue-router/dist/vue-router.d.ts
中定义。我的 tsconfig.json 包含 compilerOptions
键和 types
键。据我了解,它将尝试在 typeRoots
中定义的任何内容下查找 types
下定义的所有文件夹。如果未定义 typeRoots
,它将使用默认值 [ 'node_modules/@types' ]
。我尝试通过添加 node_modules
、node_modules/vue-router
和 node_modules/vue-router/dist
并将 vue-router
和 dist
添加到 types
来解决这个问题,但似乎并不多正在发生。
我尝试按照 /// <reference types="vue-router" />
,这是由 typescript 提取的(如果我拼错它,它会出错),但也没有帮助。
我似乎也无法以任何其他方式包含类型定义(除非我 copy/paste 我猜是我自己的类型文件,但我想避免这种情况)。该类型在前面提到的文件中导出为 export declare type RouteRecordRaw = RouteRecordSingleView | RouteRecordMultipleViews | RouteRecordRedirect;
。是否有另一种方法来包含此类型定义?
事实证明,我所做的任何事情都不需要做。我已经在文件顶部有一个 import * as VueRouter from 'vue-router';
。事实证明,您可以像导入任何其他内容一样导入类型。正确的语法结果是:
export const routes: VueRouter.RouteRecordRaw[] = [];