Cześć, potrzebowałbym utworzyć interfejs, bądź typ, który zawierałby dopuszczalne stringi odczytane z innego interface. Przykładowo z następującego interfejsu:
export interface IProjectSelectorProps {
name: string
shortName: string
category: 'Robotyka' | 'Elektronika' | 'Oprogramowanie'
year: string
programmingLanguage?: programmingLanguages[]
}
type programmingLanguages =
| 'JS'
| 'Java'
| 'Python'
| 'C#'
Chciałbym otrzymać:
type IProjectSelectorKeys = 'name' | 'category' | 'year' | 'programmingLanguage'
Czy da się coś takiego otrzymać w sposób automatyczny, tak żebym nie ograniczał się do manualnego tworzenia typu, bo potem przy każdej zmienię bym musiał oba typy zmieniać? :) Próbowałem już pobrać klucze z obiektu o interface IProjectSelectorProps, no ale wtedy mam tablicę stringów i nie bardzo wiem, jak miałbym ją przetworzyć na typ (tym bardziej, że jeżeli się nie mylę to typy nie mogą być zależne od wartości obiektu, bo w końcu mają 'diagnozować' przed wykonywaniem się kodu).
Z góry dziękuję.