У меня есть один интерфейс, AppState, и я хочу иметь возможность кодировать против подмножества этого основного интерфейса appstate, чтобы я извлекал только те свойства, которые были бы заполнены классом контроллера где-то еще выше в конвейере. В конце концов я хочу иметь возможность «подключаться» с помощью FooAppStateSubset, чтобы при разработке мы могли легко выбрать ПРОСТО релевантные и установленные для нашего раздела веб-сайта реквизиты.
Как я могу убедиться, что ...
- FooAppStateSubset ONLY содержит свойства и значения, которые также можно найти в интерфейсе AppState
- FooAppStateSubset не требуется для вывода списка необязательных параметров из AppState
- Сбой во время компиляции и сборки, если нарушены первые два правила
- Автозаполнение для свойств будет отличным бонусом,Хорошо, если это невозможно.
- Было бы неплохо иметь возможность определять модели по всему веб-сайту без необходимости, чтобы основной интерфейс AppState реализовывал все модели разбросанных подмножеств.
МОДЕЛИ:
interface AppState {
email: string;
userId: number;
firstName?: string;
isAwesome: boolean;
}
interface/type FooAppStateSubset {
isAwesome: boolean;
firstName?: string;
}