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

Ionic中如何设置模型字段仅支持两种指定模型实例并校验类型

解决方案

你当前代码中paidFrom: [Bank, Wallet]是元组类型定义,代表该字段需要传入同时包含Bank、Wallet实例的数组,和你要的「二选一」需求不符,按如下方式修改即可:

1. 编译时类型校验(TypeScript原生支持)

将paidFrom的类型修改为联合类型Bank | Wallet,开发阶段传入非这两类的实例时,TypeScript会直接抛出编译错误,从开发环节就阻断非法值传入。

2. 运行时类型校验(适配动态数据场景)

如果你的Expense实例会通过接口返回、本地存储读取等动态方式生成,需要在构造函数内添加运行时校验逻辑,非法值传入时主动抛出错误。

修改后的完整代码如下:

import { Bank } from './bank.model';
import { Beneficiary } from './beneficiary.model';
import { Category } from './category.model';
import { Wallet } from './wallet.model';

export class Expense {
  constructor(
    public id: string,
    public amount: number,
    public paidFrom: Bank | Wallet,
    public beneficiary: Beneficiary,
    public category: Category,
    public description: string,
    public date: Date
  ) {
    // 运行时类型校验逻辑
    if (!(paidFrom instanceof Bank) && !(paidFrom instanceof Wallet)) {
      throw new TypeError('paidFrom 只能是 Bank 或 Wallet 类型的实例');
    }
  }
}

效果说明:

  • 常规TS开发场景下,类型不匹配时会在编码、编译阶段就提示错误,无需等到运行
  • 动态数据场景下,非法值传入时会直接抛出明确的类型错误,方便排查问题

内容的提问来源于stack exchange,提问作者Ahmad Hussian

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:21:02