type A = {[x:string]:string} 
type B = keyof A // string | number
//   ^?
const A:A = {a:"abc",[1]:"xyz"}
type C = keyof A & string // string
//   ^?

խաղահրապարակ

Սովորաբար դա որևէ խնդիր չի առաջացնի, քանի որ javascript-ում թվային ստեղնը կպարտադրվի լարային ստեղնի մեջ

սակայն դա կարող է խնդիր առաջացնել, եթե մենք ինչ-որ տեսակի մանիպուլյացիա ենք անում

Սա լուծելու համար մենք կարող ենք այն հատել տողի հետ կամ ts կոնֆիգուրայում սահմանել keyofStringsOnly-ը true

կամ պարզապես օգտագործեք Record<string, T> կամ{[x in string]: T}

սա աշխատանք է, ինչպես սպասվում էր

ավելին github PR-ի և Release Note-ի մասին