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
|
//// [tests/cases/compiler/templateExpressionAsPossiblyDiscriminantValue.ts] ////
=== templateExpressionAsPossiblyDiscriminantValue.ts ===
// repro mentioned in https://github.com/microsoft/TypeScript/issues/53888
type BiomePlainLinkProps = {
>BiomePlainLinkProps : { href: string; onClick?: ((event: string) => void) | undefined; }
href: string;
>href : string
onClick?: (event: string) => void;
>onClick : ((event: string) => void) | undefined
>event : string
}
type BiomeButtonProps = {
>BiomeButtonProps : { href?: undefined; onClick?: ((event: number) => void) | undefined; }
href?: never;
>href : undefined
onClick?: (event: number) => void;
>onClick : ((event: number) => void) | undefined
>event : number
}
export type ClickableDiscriminatedUnion =
>ClickableDiscriminatedUnion : BiomePlainLinkProps | BiomeButtonProps
| BiomePlainLinkProps
| BiomeButtonProps;
const p3: ClickableDiscriminatedUnion = {
>p3 : ClickableDiscriminatedUnion
>{ href: `2${undefined}332132`, onClick: (ev) => console.log('@@@@', ev),} : { href: string; onClick: (ev: string) => void; }
href: `2${undefined}332132`,
>href : string
>`2${undefined}332132` : string
>undefined : undefined
onClick: (ev) => console.log('@@@@', ev),
>onClick : (ev: string) => void
>(ev) => console.log('@@@@', ev) : (ev: string) => void
>ev : string
>console.log('@@@@', ev) : void
>console.log : (...data: any[]) => void
>console : Console
>log : (...data: any[]) => void
>'@@@@' : "@@@@"
>ev : string
}
|