无法调用可能“未定义”的对象作为 Vue3 插件的函数

问题描述 投票:0回答:1

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

这是个坏主意。我不想编写这个条件来使用插件功能。 有人可以告诉我我做错了什么吗?插件是根据文档实现的。

typescript plugins vuejs3 undefined
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.