Microsoft/TypeScript

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 创建于 2022年6月28日

在 GitHub 查看
 (1 评论) (0 反应) (0 负责人)TypeScript (6,726 fork)batch import
Domain: LS: Completion ListsExperience EnhancementHelp WantedSuggestion

仓库指标

Star
 (48,455 star)
PR 合并指标
 (平均合并 6天 17小时) (30 天内合并 9 个 PR)

描述

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

贡献者指南