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

如何让foo变量保留推断类型同时满足Foo类型约束?

让变量满足类型约束同时保留推断类型的方案

要实现让foo既符合Foo的类型约束,又能保留它被推断出来的{ a: { b: string } }具体类型,最优的方案就是给foo设置推断类型与Foo的交叉类型。这样一来,foo既会被TS识别为具体的{ a: { b: string } }类型,同时又必须满足Foo的约束要求。

示例代码如下:

type Foo = { [k: string]: { [k: string]: string } };
const _foo = { a: { b: 'c' } };
export const foo: typeof _foo & Foo = _foo;

如果对保留交叉类型没有硬性要求,退一步的方案也可以接受:只要确保当foo不符合Foo类型约束时,TypeScript能触发类型错误,那即使foo的类型仅为推断出来的{ a: { b: string } }也是可行的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:07:40