Типов нет в рантайме, так что нужно проверять по тому что есть, например написать примерно такой тайпгвард:
const isFormPropsType = (v: FormPropsType | {path: string}): v is FormPropsType => typeof (v as FormPropsType).formName === 'string';
И соответственно использовать его для проверки:
const authForms:AuthFormsType = {
login:(props) =>{
if(isFormPropsType(props)){
return <Login
formName={props.fromName}
onSubmit={props.onSubmit}
changeFormStateHandler={props.changeFormStateHandler}
/>
}
return <Login path={props.path} />
},
Хотя подозреваю, что можно гораздо проще сделать в данном случае:
const authForms:AuthFormsType = {
login:(props) => {
return <Login {...props} />
},