我有一个 Vue3 插件,其中包含一些确实存在并且工作正常的全局函数。我正在使用注入命令在组件中使用它。
const translate = inject<Function>('translate')
现在我应该能够像简单调用函数一样使用它了。
const parsedCategories = computed(() => {
const categories = settingsApi.value?.companyCategories ? settingsApi.value.companyCategories : [];
if( !categories.length ) return []
let result = [];
categories.forEach((item: any) => {
result.push({
'title': translate(item.translations, 'company_category'),
'value': item.id
})
})
return result
})
这条线
'title': translate(item.translations, 'company_category'),
构建时遇到问题无法调用可能“未定义”的对象 这个问题的解决方案应该是这样的
'title': translate ? translate(item.translations, 'company_category') : '',
这是个坏主意。我不想编写这个条件来使用插件功能。 有人可以告诉我我做错了什么吗?插件是根据文档实现的。
我仍然想知道如何解决这个问题,因为这使得 Vue3 插件对 Typescript 完全无用。但我找到了解决办法。我将插件中的所有函数重写为 composables,现在它不会抛出未定义类型的错误。