typescript indexOf报错“类型“string”的参数不能赋给类型“never”的参数”

const formState = reactive({
   associTag:"",
   dynamicTags:[]
})

function confirmAdd(){
    if(formState.dynamicTags.length==0 || formState.dynamicTags.indexOf(formState.associTag)==-1){
        formState.dynamicTags.push(formState.associTag);
    }
}

image.png
刚学习ts,报错确实让人很头疼

阅读 11.5k
1 个回答

dynamicTags 没定义类型,默认是 Array<never>

假设你里面要放的元素是类型 Foo,那么声明时需要:

{
    dynamicTags: [] as Foo[],
    dynamicTags: [] as Array<Foo>,
    dynamicTags: new Array<Foo>()
}

几种写法都可以,推荐第一种。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
Microsoft
子站问答
访问
宣传栏