首页 > 解决方案 > 字典中的打字稿索引字符串类型,它是实现中键的联合类型

问题描述

我尝试为我的模拟工具编写防弹界面。

最初我有一个接口,每个模拟都必须实现

export interface MockaronI<T> {
  states: { [state: string]: () => T };
}

这里的状态是一组具有任意名称的工厂函数,每个模拟都有。

在我的实用程序内部的某个时候我正在做那个伪代码的问题

keysof GenericType (which extends MockaronI) ['states']

并获得对我来说太宽泛的字符串类型(因为 IDE 自动完成功能不起作用)。我想将其缩小到states object 中的现有状态

所以基本上我想要这样的东西。但这不是有效的语法。

export interface MockaronI<T> {
  states: { [state: infer P extends string]: () => T };
}

是否有可能在接口实现状态下拥有基于现有键名的字典类型?

标签: typescript

解决方案


推荐阅读