Na poziomie TypeScriptu to nie wiem, ale jak już odpalisz działający program i będziesz miała konkretne obiekty, to za pomocą Object.entries
w JS możesz wydobyć nazwy właściwości i konkretne wartości i na tej podstawie skonstruować tablice:
const person = {
name: "Kotek",
surname: "Kotkowy",
age: 2,
city: "Warszawa",
country: "Polska",
};
const stringProperties = [];
const numberProperties = [];
Object.entries(person).forEach(([k, v]) => {
if (typeof v == 'number') numberProperties.push(k);
if (typeof v == 'string') stringProperties.push(k);
});
console.log(stringProperties); // [ 'name', 'surname', 'city', 'country' ]
console.log(numberProperties); // [ 'age' ]
No i jeśli chodzi stricte o TypeScript, to ten kod z jakichś powodów pokazuje błąd przy push
. TypeScript uważa, że tablice stringProperties
i numberProperties
są typu never[]
i nie pozwala pusznąć (parameter) k: string Argument of type 'string' is not assignable to parameter of type 'never'
Więc tutaj adnotacje typów się przydadzą:
const stringProperties: string[] = [];
const numberProperties: string[] = [];