我正在使用Redux和Normalizr在TypeScript中构建React Native应用程序。所以我会有一个规范化的状态。
我有四个接口:Emotion
、Need
、PainData
和PainReport
:
export interface Emotion {
name: string;
chosen: boolean;
rating: number;
}
export interface Need {
name: string;
rating: number;
}
export interface PainData {
note: string;
emotions: Emotion[];
needs: Need[];
date: Date;
}
export interface PainReport {
[date: string]: PainData
}
现在我想创建一个接口,它不是一个数组,而是一个允许多个PainReport的对象,如下所示(伪代码):
export interface PseudoPainReportsObject {
[date: string]: PainData,
[date: string]: PainData,
[date: string]: PainData,
// ... dynamically have as many as I'd like. Maybe 1, maybe 100
}
我想用它来规范化状态,就像你使用Normalizr时得到的那样。
如何实现这样的类型或接口?
2条答案
按热度按时间e3bfsja21#
一个使用TypeScript的Record类型的行:
Record<K, V>
表示具有任意数量的K
类型键的对象,这些键Map到V
类型值。r6vfmomb2#
[date: string]
允许任意多个属性;PainReport
正是你想要的。没有办法将其限制为只有一个属性。