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>

Ответы (0 шт):