Cześć :D
Mam takie zagadnienie - mianowicie mam interfejs i metodę:
interface ISomeInterface{
prop1?: string;
prop2?: number;
}
function foo<T>(interfaceProp: string){
}
Interfejs nie wyróżnia się niczym szczególnym, jedyne co to ma wszystkie właściwości nullowalne. Natomiast funkcja powinna przyjmować w parametrze interfaceProp WYŁĄCZNIE stringi, które odpowiadają nazwom właściwości interfejsu, którego typ przekazujemy w T. Wydaje się, że to żaden rocket science ale odbiłem się od zadania. Kombinowałem coś z mapped types (https://www.typescriptlang.org/docs/handbook/2/mapped-types.html) ale jedyne co mi się udało zrobić to taki parametr:
function foo<T>(interfaceProp: {[Property in keyof T]}){
}
ale to przyjmuje obiekt w parametrze i nie rozwiązuje mojego problemu. Zależy mi na tym, by był to string i żeby intellisense podpowiadał wartości - zmieni się model i chcę żeby kompilacja się nie powiodła jak stringiem będzie coś co nie jest nazwą właściwości interfejsu.
Strasznie się na tym zaciąłem i za wszelkie uwagi serdecznie dzięki :D
Pozdrawiam,
Dawid.