我有一个接口 AppState,我希望能够针对这个主 appstate 接口的一个子集进行编码,以便我只提取将由管道中某个位置的控制器类填充的属性。最终,我希望能够使用 FooAppStateSubset “连接”,因此在开发时我们可以轻松地挑选出相关的道具,并为我们当前的网站部分设置。
我怎样才能确保...
- FooAppStateSubset仅包含在 AppState 接口中也可以找到的属性和值
- FooAppStateSubset不需要列出来自 AppState 的非可选参数
- 如果前两个规则被破坏,则在编译和构建时失败
- 属性的自动完成将是一个很酷的奖励。好吧,如果这是不可能的。
- 能够在整个网站上定义模型而不需要让主 AppState 接口实现所有分散的子集模型会很好。
楷模:
interface AppState {
email: string;
userId: number;
firstName?: string;
isAwesome: boolean;
}
interface/type FooAppStateSubset {
isAwesome: boolean;
firstName?: string;
}