我有一个Vue3插件,它有一些全局函数,它们确实存在并且工作正常。我使用inject命令在组件中使用它。
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') : '',
这不是个好主意我不想写这个条件来使用插件函数。有人能告诉我我做错了什么吗?插件根据文档实现。
1条答案
按热度按时间hec6srdp1#
我仍然想知道如何解决这个问题,因为这使Vue3插件完全无用的Typescript。但我找到了解决办法。我重写了插件中的所有函数作为composables,现在它不会抛出未定义类型的错误。