Typescript не понимает функция ли свойство
Всем привет, у меня есть такая структура
interface IValidation {
required: {
value: boolean,
message: string
},
pattern: {
value: string | ((value: string) => boolean),
message: string
}
}
И я пытаюсь
Будем считать что validations[key] это {
key: pattern: {value: (data) => return true}
}
if(validations[key]?.pattern &&
Object.prototype.toString.call(validations[key]?.pattern?.value) === "[object Function]") {
return validations[key].pattern?.value(value);
}
Почему typescript не понимает что это функция?

Пробовал так же
if(validations[key]?.pattern && validations[key]?.pattern?.value instanceof Function) {
return validations[key].pattern?.value(value);
}
if(validations[key]?.pattern && typeof validations[key]?.pattern?.value !== "string") {
return validations[key].pattern?.value(value);
}