首页 > 解决方案 > Typescript 映射类型,接口使用“key in keyof”

问题描述

我有这个界面:

interface REDUX_STATE {
  APP: APP,
  AUTH: AUTH,
}

我需要为UPDATE_ACTIONS对象定义一个类型,如下所示:

const UPDATE_ACTIONS = {
  APP: "UPDATE_APP",
  AUTH: "UPDATE_AUTH"
}

所以很明显,这个类型应该具有相同的属性REDUX_STATE也就是这个例子是APPAUTH

我发现我可以做到这一点type并且它有效

type UPDATE_ACTIONS = {
  [key in keyof REDUX_STATE]: string
}

但我不能将其定义为interface,例如:

interface UPDATE_ACTIONS {
  [key in keyof REDUX_STATE]: string
}

我收到此错误:

在此处输入图像描述

有没有办法可以使用界面来完成?

标签: typescript

解决方案


推荐阅读