我尝试从vue-router 4包中包含Typescript类型定义,这样我就可以使用它们中的一个类型来构建一个路由数组,看看我是否可以得到更好的错误,而不是目前在创建预填充数组时生成的可怕错误。不过,目前我在尝试使用RouteRecordRaw
类型定义数组时遇到了以下错误:
TS2304: Cannot find name 'RouteRecordRaw'.
这是在node_modules/vue-router/dist/vue-router.d.ts
中定义的。我的tsconfig.json包含compilerOptions
密钥和types
密钥。据我所知,它将尝试查找在types
下定义的所有文件夹,无论在typeRoots
中定义的是什么。如果没有定义typeRoots
,它将使用默认的[ 'node_modules/@types' ]
。我尝试通过添加node_modules
、node_modules/vue-router
和node_modules/vue-router/dist
以及将vue-router
和dist
添加到types
来解决这个问题,但似乎没有太多效果。
我试着按照this question中的建议添加一个注释/// <reference types="vue-router" />
,它被typescript拾取(如果我拼错了,它就会出错),但是也没有帮助。
我似乎也无法以任何其他方式包含类型定义(除非我将其复制/粘贴到我自己的类型文件中,但我希望避免这种情况)。该类型在前面提到的文件中导出为export declare type RouteRecordRaw = RouteRecordSingleView | RouteRecordMultipleViews | RouteRecordRedirect;
。有没有其他方法来包含这种类型定义?
发布于 2021-11-21 00:54:21
事实证明,我所做的任何事情都不需要它去做。我在文件的顶部已经有了一个import * as VueRouter from 'vue-router';
。事实证明,导入类型的方式与导入任何其他类型的方式相同。正确的语法被证明是:
export const routes: VueRouter.RouteRecordRaw[] = [];
https://stackoverflow.com/questions/70050736
复制