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
|
// @strict: true
// @noEmit: true
// @jsx: preserve
/// <reference path="/.lib/react16.d.ts" />
import React = require('react');
type TranslationEntry = {
args: [] | [unknown];
}
type Translations = {
a: { args: [string] },
b: { args: [] }
}
type TProps<Entry extends TranslationEntry> = {
getTranslationEntry: (allTranslations: Translations) => Entry,
} & (Entry["args"] extends [unknown] ? {
args: Entry["args"][0]
} : {});
declare function T<Entry extends TranslationEntry>(
props: TProps<Entry>
): JSX.Element;
<T getTranslationEntry={(allTranslations) => allTranslations.a} args="a" />
|