You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular必填输入信号设置数组默认值报错,正确做法是什么?

Angular输入信号必填数组输入的正确写法问题

在使用Angular输入信号时,若想指定一个必填的数组输入,编写了如下代码:

import { input } from '@angular/core';

values = input.required<number[]>([]);

出现构建错误,错误信息为:

TS2559: Type 'never[]' has no properties in common with type 'InputOptionsWithoutTransform<number[]>'. [plugin angular-compiler]

请问正确的默认值指定方式是什么?


错误原因与解决方法

input.required()的设计逻辑是不允许传入默认值,它的作用就是强制父组件必须提供该输入值,你传入[]作为参数触发类型错误的核心原因是:该方法的参数仅接受输入配置项(比如transform),而非默认值。

根据不同需求,正确写法分为两种:

  • 若需输入为必填项:直接调用input.required<number[]>()即可,无需传参。此时父组件必须绑定该输入,否则Angular运行时会抛出错误。
    import { input } from '@angular/core';
    
    values = input.required<number[]>();
    
  • 若需输入有默认空数组,同时允许父组件可选传入:放弃使用input.required(),改用普通input()方法并指定默认值:
    import { input } from '@angular/core';
    
    values = input<number[]>([]);
    

内容的提问来源于stack exchange,提问作者Cory Kramer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 23:29:51