File: quickInfoNestedGenericCalls.ts

package info (click to toggle)
node-typescript 5.2.2-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 497,488 kB
  • sloc: javascript: 2,107,274; makefile: 6; sh: 1
file content (22 lines) | stat: -rw-r--r-- 785 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
/// <reference path='fourslash.ts' />
// @strict: true
//// /*1*/m({ foo: /*2*/$("foo") });
//// m({ foo: /*3*/$("foo") });
//// declare const m: <S extends string>(s: { [_ in S]: { $: NoInfer<S> } }) => void
//// declare const $: <S, T extends S>(s: T) => { $: S }
//// type NoInfer<T> = [T][T extends any ? 0 : never];

verify.quickInfoAt("1", `const m: <"foo">(s: {
    foo: {
        $: "foo";
    };
}) => void`);

// the exact generic type params are not important in this test (they could change with changes to the inference algorithm)
// it's important though that they both display the same types
verify.quickInfoAt("2", `const $: <unknown, string>(s: string) => {
    $: unknown;
}`);
verify.quickInfoAt("3", `const $: <unknown, string>(s: string) => {
    $: unknown;
}`);