File: coAndContraVariantInferences5.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 (25 lines) | stat: -rw-r--r-- 528 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
// @strict: true
// @noEmit: true

type Thing = 'a' | 'b';

function f(
    options: SelectOptions<Thing>,
    onChange: (status: Thing | null) => void,
): void {
    select({
        options,
        onChange,
    });
}

declare function select<KeyT extends string>(props: SelectProps<KeyT>): void;

type SelectProps<KeyT extends string> = {
    options?: SelectOptions<KeyT>;
    onChange: (key: KeyT) => void;
};

type SelectOptions<KeyT extends string> =
    | Array<{key: KeyT}>
    | Array<KeyT>;