@kot98

Как правильно типизировать аругменты?

Описал тип переменной
type formDataType = {
  cardData: {
   number: string
   code: string
...
  }
  userData: {
    fullName: string
    login: string
...
}
  paymentData: {
    INN: string
    KPP: string
...
  }
 }

Объявил переменную:
const formData:  formDataType = reactive( {
  cardData: {
   number: '',
   code: '',
...
  },
  userData: {
    fullName: '',
    login: '',
...
},
  paymentData: {
    INN: '',
    KPP: '',
...
  },
 })

Затем нужна функция для обращения к "внутренним" значениям этого объекта (по типу formData.paymentData.KPP). Понимаю, что нужно передавать ключ внутри объекта formData и ключ внутри вложенного объекта. Но не могу правильно описать типы. Знаю, что если нужно обратиться к ключам paymentData, то можно было бы описать как (..., key: keyof typeof formData.paymentData) Но нужна функция для всех значений ключей.
const someFunc = (object: ???, key: ???) => {
  ...
}
  • Вопрос задан
  • 91 просмотр
Пригласить эксперта
Ответы на вопрос 1
Aetae
@Aetae Куратор тега TypeScript
Тлен
const someFunc = <
  FK extends keyof FormDataType, 
  SK extends keyof FormDataType[FK]
>(
	firstKey: FK, 
	secondKey: SK
) => {
  ...
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы