File: typeInferenceWithExcessPropertiesJsx.types

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 (58 lines) | stat: -rw-r--r-- 1,721 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//// [tests/cases/compiler/typeInferenceWithExcessPropertiesJsx.tsx] ////

=== typeInferenceWithExcessPropertiesJsx.tsx ===
/// <reference path="react16.d.ts" />

import React = require('react');
>React : typeof React

type TranslationEntry = {
>TranslationEntry : { args: [] | [unknown]; }

    args: [] | [unknown];
>args : [] | [unknown]
}
type Translations = {
>Translations : { a: {    args: [string];}; b: {    args: [];}; }

    a: { args: [string] },
>a : { args: [string]; }
>args : [string]

    b: { args: [] }
>b : { args: []; }
>args : []
}
type TProps<Entry extends TranslationEntry> = {
>TProps : TProps<Entry>

    getTranslationEntry: (allTranslations: Translations) => Entry,
>getTranslationEntry : (allTranslations: Translations) => Entry
>allTranslations : Translations

} & (Entry["args"] extends [unknown] ? {
    args: Entry["args"][0]
>args : Entry["args"][0]

} : {});

declare function T<Entry extends TranslationEntry>(
>T : <Entry extends TranslationEntry>(props: TProps<Entry>) => JSX.Element

    props: TProps<Entry>
>props : TProps<Entry>

): JSX.Element;
>JSX : any

<T getTranslationEntry={(allTranslations) => allTranslations.a} args="a" />
><T getTranslationEntry={(allTranslations) => allTranslations.a} args="a" /> : JSX.Element
>T : <Entry extends TranslationEntry>(props: TProps<Entry>) => JSX.Element
>getTranslationEntry : (allTranslations: Translations) => { args: [string]; }
>(allTranslations) => allTranslations.a : (allTranslations: Translations) => { args: [string]; }
>allTranslations : Translations
>allTranslations.a : { args: [string]; }
>allTranslations : Translations
>a : { args: [string]; }
>args : string