File: objectRestBindingContextualInference.ts

package info (click to toggle)
node-typescript 5.1.6%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 492,516 kB
  • sloc: javascript: 2,078,951; makefile: 6; sh: 1
file content (30 lines) | stat: -rw-r--r-- 564 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// @strict: true
// @noEmit: true

// slimmed-down repro from #52629

type ImageHolder<K extends string> = {
  [P in K]: string;
};

type SetupImageRefs<K extends string> = {
  [P in K]: File;
};

type SetupImages<K extends string> = SetupImageRefs<K> & {
  prepare: () => { type: K };
};

interface TestInterface {
  name: string;
  image: string;
}

declare function setupImages<R extends ImageHolder<K>, K extends string>(
  item: R,
  keys: K[]
): SetupImages<K>;

declare const test: TestInterface;

const { prepare, ...rest } = setupImages(test, ["image"]);