TypeScript переиспользование интерфейса с динамичным аргументом
Подскажите, можно ли в ts сделать следующее? Есть такой код:
interface FormStore<T> {
type: T;
}
interface Form<T> extends FormStore<T> {
email: T;
phone: T;
password: T;
}
interface FormState<R> {
form: Form<string>;
validate: Form<boolean>;
}
Хотелось бы переиспользовать тип FormState<R> и передавать аргумент для замены Form на R, так чтобы это выглядело примерно следующим образом:
// такой вариант не работает, только для примера
interface FormState<R> {
form: R<string>;
validate: R<boolean>;
}
// другой файл
FormState<CustomForm>