typescript 无法从Vue3插件调用可能为“undefined”的对象作为函数

41zrol4v  于 2023-10-22  发布在  TypeScript
关注(0)|答案(1)|浏览(154)

我有一个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') : '',

这不是个好主意我不想写这个条件来使用插件函数。有人能告诉我我做错了什么吗?插件根据文档实现。

hec6srdp

hec6srdp1#

我仍然想知道如何解决这个问题,因为这使Vue3插件完全无用的Typescript。但我找到了解决办法。我重写了插件中的所有函数作为composables,现在它不会抛出未定义类型的错误。

相关问题