У меня есть класс Typescript, который можно проверить, и после проверки тип его полей гарантирован.Но проверяемый класс должен быть допустимым, чтобы принимать пользовательский ввод.Могу ли я использовать производный строгий тип из допустимого класса?
В основном : у меня есть класс с неявным интерфейсом {value: string | undefined}
, и я хочу автоматически получить тип {value: string}
из него,Это возможно?
В более конкретных терминах у меня есть такой класс:
class Validatable {
value: string | undefined = undefined
}
(в моем реальном коде это должен быть класс из-за того, как работает валидация, но я нене думаю, что детали проверки важны для этого вопроса)
Этот класс может быть проверен ala:
function getValid (inst: Validatable) {
const errors = validate(inst)
if (errors.length > 0) throw new Error("Invalid")
return inst
}
const inst = new Validatable()
inst.value = "foo"
getValid(inst).value
^-- this type is string | undefined
but we know it must be string
Мне бы хотелось, чтобы автоматически был получен строгий интерфейс {value: string}
.Это возможно?