Если во время выполнения работы станет очевидным, что она не будет выполнена
надлежащим образом
... спрашиваете вы, а затем сами пишите точно такую же))
Однако extends unknown позволяет меньше думать
U extends U
выделяется куда как лучше, чем T extends unknown
. И по скольку почти всегда в таких случаях используются однобуквенные гженерики, то сравнить 2 буквы одного цвета проще, чем вглядываться что там написано (unknown | string | number
или ещё что), поскольку ааноун точно такого же цвета, как и другие примитивы, как и спец слова самого тса.T extends unknown ? keyof T : never
type KeyOfEach<T, U = T[keyof T]> = U extends U ? keyof U : never
type Key = KeyOfEach<typeof formData>
// или попроще
type KeyOfEach2<T> = {
[Key in keyof T]: keyof T[Key]
}[keyof T]
type Key2 = KeyOfEach2<typeof formData>
И вот случай "придерживается нашего плана" не должен быть основан на субъективном мнении людей (у которых могло, как получится в жизни, так и нет), квалификация которых не проверена ни разу.
Ну, это относится к 99% вопросов здесь.)