У меня есть несколько различных шаблонов электронной почты, каждый из которых имеет свои параметры.
Я могу определить тип для каждого шаблона:
type TemplateType = 'welcomeEmail' | 'referralEmail' | 'loginEmail'
И для каждого шаблона я могу определить параметры:
interface WelcomeEmail {
firstName: string;
lastName: string;
...
}
Затем я могу определить интерфейс EmailTemplate:
interface EmailTemplate {
template: TemplateType;
params: WelcomeEmail | ReferralEmail | LoginEmail;
}
Есть ли способ напечатать это так, чтобы при шаблоне 'welcomeEmail' тип params
был WelcomeEmail
* * 1014