【发布时间】:2019-01-06 04:33:33
【问题描述】:
假设我有一个打字稿界面:
interface IOriginal {
aaa: string;
bbb: boolean;
}
...现在说我想创建一个具有相同键但不同值的类似接口(在我的具体情况下,这些值是使用 Redux 的 Reducer 泛型派生的,但我想保持答案相当笼统):
import { Reducer } from "redux";
interface IDerived{
aaa: Reducer<string>;
bbb: Reducer<boolean>;
}
问题:如何直接从IOriginal 生成IDerived 而无需明确重新键入所有键值对(违反 DRY 并且有两个地方可以更新内容)?如果这些是对象,我可以这样做:
const derived = original;
for(var key in derived) derived[key] = Reducer(original[key]);
...但我不确定在处理类型/接口时是否有等效的工具。
【问题讨论】:
标签: typescript typescript-generics