Microsoft/TypeScript
GitHub で見るType where type of second tuple item is dependent on the type of the first doesn't get filtered completion lists after the first item has been entered
Open
#49,711 opened on 2022年6月28日
Domain: LS: Completion ListsExperience EnhancementHelp WantedSuggestion
Repository metrics
- Stars
- (48,455 stars)
- PR merge metrics
- (平均マージ 6d 17h) (30d で 9 merged PRs)
説明
Bug Report
🔎 Search Terms
recursive tuples the joint type
🕗 Version & Regression Information
"typescript": "4.6.4"
⏯ Playground Link
Playground link with relevant code
💻 Code
type Item = {
a: {
b: 2;
c: boolean;
};
d: {
e: 3
}
f: 1;
}
type GetKeys<T> = {
[K in keyof T]: [K, ...(T[K] extends object ? GetKeys<T[K]> : [])]
}[keyof T]
type To<T> = {
index: GetKeys<T>; // Looking forward to ['a', 'b'] | ['a', 'c'] | ['d', 'e'] | ['f']
}
const obj: To<Item> = {
index: ['d', 'e'], // Parameter 2 Prompt b | c | e | f Expected to prompt e
}
🙁 Actual behavior
obj.index Parameter 2 Prompt b | c | e | f
🙂 Expected behavior
Expected to prompt e