打字稿错误:“ undefined []”类型无法分配给“ void”类型

梅里克

在我的Angular应用程序中,我有一个过滤器功能,可以跟踪用户输入的过滤器值以及当前是否启用/激活这些过滤器值。我正在像这样初始化这些过滤器:

filters = { language: [], location: [], zipArray: [], firstName: [], lastName: [] };

我在这段代码中遇到Typescript错误-特别是这一行: return this.filters.zipArray = [];

public onZipcodeEnabledChange(enabled): void {
    this.filters.zipArray = this.getZipcodeArray();
    if (!enabled || this.filters.zipArray && this.filters.zipArray[0] === ''){
        return this.filters.zipArray = [];
    }
}

我收到的TypeScript错误是:

类型'undefined []'不能分配给类型'void'。

我不明白这里的问题是什么?

Laxmikant Dange

您将返回类型声明onZipcodeEnabledChange为void,这意味着该函数将不返回任何内容。在if语句中,您将返回return this.filters.zipArray = [];ie []的赋值结果

解决方案1

只需删除return关键字即可为您服务。

public onZipcodeEnabledChange(enabled): void {
    this.filters.zipArray = this.getZipcodeArray();
    if (!enabled || this.filters.zipArray && this.filters.zipArray[0] === ''){
       this.filters.zipArray = [];
    }
}

解决方案2

如果要从该函数返回数组,则需要用替换void any[]

public onZipcodeEnabledChange(enabled): any[] {
    this.filters.zipArray = this.getZipcodeArray();
    if (!enabled || this.filters.zipArray && this.filters.zipArray[0] === ''){
       this.filters.zipArray = [];
       return this.filters.zipArray;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

打字稿:无法分配给类型错误

输入'号码 | undefined' 不能分配给类型'number',打字稿错误?

打字稿错误:输入'IStory | undefined' 不可分配给类型

收到错误“类型'void'无法分配给类型'ReactNode'”

打字稿错误“无法将类型参数分配给类型参数”

打字稿错误:无法将“数字”类型分配给“从不”类型

打字稿错误:“对象”类型的参数无法分配给“ {} []”类型的参数

打字稿错误:类型Observable <Object>无法分配给类型

节点打字稿:输入'"X" | “哦” | undefined' 不能分配给类型 '"X" | “哦”'。类型 'undefined' 不能分配给类型 '"X" | "O"'.ts(2322)

打字稿错误:输入 '{ onClick: () => void; }' 不可分配给类型 'IntrinsicAttributes'

打字稿中的“无法分配给永不类型的参数”错误是什么?

类型错误:无法分配给打字稿中对象“[object Array]”的只读属性“0”

打字稿中这种复杂的“无法分配给类型”错误的解释

打字稿:类型 'Promise<void>' 不可分配给类型 'void | 破坏者

打字稿提醒不能将类型'(x:字符串)=> void'分配给类型'()=> void

错误:无法将参数类型“void Function(bool)”分配给参数类型“void Function(bool?)”

React Component上的打字稿错误:无法将'Element'类型的参数分配给该类型的参数

打字稿错误:无法将类型'number'的参数分配给'Expected <Promise <number >>'类型的参数

映射期间无法将类型'{}'分配给类型'object []'并减少打字稿中的类型

无法将“数字”类型分配给“日期”类型-无法编译打字稿

打字稿错误 - 输入“Ticket[]”| undefined' 不是数组类型

打字稿-类型'假'不能分配给类型'真'

打字稿错误:类型'{道具:IDrink; }' 不可分配给类型 'IntrinsicAttributes & IDrink'

打字稿错误:类型的“this”上下文......不可分配给方法的“this”类型

输入'字符串| string[]' 不能分配给类型 'string' - 打字稿类型错误

收到打字稿错误:类型'any []'不能分配给'never []'类型。TS2345

角度/打字稿错误:类型 'Observable<unknown>' 不可分配给类型 'Observable<Blogpost>'

打字稿错误::类型'数字'不能分配给类型'从不'

打字稿:类型“null”不可分配给类型错误