首页 > 解决方案 > 如何在 TypeScript 项目中使用 Vue.use() 一个 JavaScript 插件

问题描述

我正在尝试Semantic-UI-Vue在我的 vue 项目中使用。但是,当我尝试执行以下操作时出现以下错误Vue.use(SuiVue)

'typeof import("semantic-ui-vue")' 类型的参数不可分配给 'PluginObject<{}> 类型的参数 | PluginFunction<{}>'。\n 类型 'typeof import("semantic-ui-vue")' 不可分配给类型 'PluginFunction<{}>'。\n 类型 'typeof import("semantic-ui-vue" )' 不提供与签名 '(Vue: VueConstructor, options?: {} | undefined): void' 的匹配。”

我创建了一个.d.ts文件,可以让我导入 SuiVue:

declare module 'semantic-ui-vue'{}

我将其导入app.ts为:

import * as SuiVue from 'semantic-ui-vue';

在不禁用全局 TypeScript 设置的情况下,我需要做什么才能让这个插件在打字稿项目中可用noImplicitAny

标签: javascripttypescriptvue.jsvuejs2semantic-ui

解决方案


替换declare module 'semantic-ui-vue'{}declare module 'semantic-ui-vue';


declare module 'semantic-ui-vue'{}表示模块具有空对象的类型{}

declare module 'semantic-ui-vue';表示模块的类型为 any

请参阅https://www.typescriptlang.org/docs/handbook/modules.html中的速记环境模块


正如 OP 所知道的那样,您需要将 import 语句更改import SuiVue from 'semantic-ui-vue';为才能正常工作


推荐阅读