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

如何修改Props适配MyCustomType中多参数的setCounterActive?

适配MyCustomType变更的Props修改方案

首先得说,你之前的Props里setCounterActive的类型是错的——MyCustomType里它是个函数,但你写成了boolean类型,现在要跟着MyCustomType的更新同步调整。

两种正确的修改方式

方式一:复用已有类型(推荐)

直接从MyCustomType里提取setCounterActive的类型,避免重复定义,后续维护更省心:

import type { MyCustomType } from 'shared/types/custom-type.js'

type Props = {
   ...BaseProps,
   +setCounterActive: MyCustomType['setCounterActive'],
} 

方式二:显式定义函数类型

要是想直接把类型逻辑写清楚,就和MyCustomType里的定义保持完全一致:

import type { MyCustomType } from 'shared/types/custom-type.js'

type Props = {
   ...BaseProps,
   +setCounterActive: (loggedIn: boolean, userName: string) => void,
} 

调用时的要求

修改完类型后,调用setCounterActive的时候必须传入两个参数:第一个是布尔值(对应loggedIn),第二个是字符串(对应userName),顺序不能搞反,比如:

// 正常调用示例
props.setCounterActive(true, 'Alice');
// 未登录场景允许传空字符串的情况
props.setCounterActive(false, '');

另外提一句,你代码里的+是Flow的只读属性语法,要是纯TypeScript项目,建议换成readonly;如果是同时兼容Flow和TS的场景,保留+没问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 09:30:41