Hej mam problem z specyficznym błedem.
Type instantiation is excessively deep and possibly infinite.
Niby TS ma racje ale jednak się myli może da się to jakoś obejść ;) Chciałem sobie zrobić obiekt który może mieć dowolną liczbę zagłębień i stringa jako wartość. Zrobiłem sobie "zapętlony" typ do tego. Jednak wiem ze na poziomie deklaracji konkretnych wartości korzystają z tego typu pętli nie zrobię ponieważ wartości nie mogą być referencjami. Typ wygląda tak :
type Object1 = {[key: string]: string | Object1}
Aby obejść ten problem mozna zadeklarować typ z stałą ilością zagłębień
type Object3 = {[key: string]: string | {[key: string]: string | {[key: string]: string }}}
Ale nie wydaje się to zbyt eleganckie :/ Da się coś na to poradzić w ładny sposób? :) Ogólnie to co chcę zrobić to mapowanie obiektu
const obj = {
"key1": {
"key2": "value",
"key3": "value1",
},
"key4": "value",
};
na obiekt taki i zachować typowanie
const obj = {
"key1.key2": "value",
"key1.key3": "value1",
"key4": "value",
};
https://www.typescriptlang.org/play?#code/KYDwDg9gTgLgBDAnmYcBSECWA7APAaQBo4AFAPjgF4585QZhsATAZzhZihwHM4AfONgCuAWwBGwKHAD8AKBJ0QDZmw5dsvAcPGSZsgAYASAN74AviYDklxctakZca3ABcTgHSWLxkmf2y3bGAAN11AkMkAbllZUEhYBGRUABlgAENQllwAFQpqbNtGewgxACtgAGN4OWM4AG1aHDgAa2BECAAzOGyAXTcMHAJiVIzgLOyGnrIKMzrW9q7e1ydLaNkkFDgAeTLKmABGKjhjOba3NR4+9k4efm3dqv2zdaT78qqAZiOT+fObjSuFw0dx+Z2u6m4gP+mmOp0QfwhUIhcDMqJiFQg2A4cBKpW+sjghLgACJ5vtiW5jASiTTSW0AEwUknBNIAGyEwGJhGpNMJdMQHyZxJZ7OA5O5NLMEqJ-IALEKRRyubIzHA0mwMVj4GsNqh8G02NQRplcLrOjiymQYrq4AAlMZCVkwADKmBEYFZwByhRUbz2hzyx3q8zgTWNYxyZB6yyB3GeNvtLEdLrdHuA9O99CKbB27xgH0DtThoewcHD4yjMehzxem31iBY9O+wbaJZoBujCJ4NZt9ZYX2oieTrvdntNSXNuKtMSAA