Skip to content

Commit 8f69dae

Browse files
authored
Merge pull request #1230 from pedrodurek/master
fix: Inference for specific keys ts 4.1
2 parents 8fa7101 + a0c7458 commit 8f69dae

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/ts4.1/index.d.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,13 @@ declare module 'i18next' {
5353
}
5454

5555
// Normalize single namespace
56-
type OmitArrayProps<T> = Exclude<T, keyof any[]>;
57-
type AppendKeys<K1, K2> = `${K1 & string}.${OmitArrayProps<K2> & string}`;
56+
type AppendKeys<K1, K2> = `${K1 & string}.${K2 & string}`;
57+
type AppendKeys2<K1, K2> = `${K1 & string}.${Exclude<K2, keyof any[]> & string}`;
5858
type Normalize2<T, K = keyof T> = K extends keyof T
59-
? T[K] extends object
60-
? AppendKeys<K, keyof T[K]> | AppendKeys<K, Normalize2<T[K]>>
59+
? T[K] extends Record<string, any>
60+
? T[K] extends readonly any[]
61+
? AppendKeys2<K, keyof T[K]> | AppendKeys2<K, Normalize2<T[K]>>
62+
: AppendKeys<K, keyof T[K]> | AppendKeys<K, Normalize2<T[K]>>
6163
: never
6264
: never;
6365
type Normalize<T> = keyof T | Normalize2<T>;

0 commit comments

Comments
 (0)