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
|
=== tests/cases/compiler/circularResolvedSignature.ts ===
declare function useState<S>(initialState: (() => S)): [S, (s: S) => void];
>useState : <S>(initialState: (() => S)) => [S, (s: S) => void]
>initialState : () => S
>s : S
type Data = Readonly<{
>Data : Readonly<{ value: number; foo: (arg: any) => void; bar: (arg: any) => void; }>
value: number;
>value : number
foo: (arg: any) => void;
>foo : (arg: any) => void
>arg : any
bar: (arg: any) => void;
>bar : (arg: any) => void
>arg : any
}>;
export function Component() {
>Component : () => void
const [state, setState] = useState<Data>(() => ({
>state : Readonly<{ value: number; foo: (arg: any) => void; bar: (arg: any) => void; }>
>setState : (s: Readonly<{ value: number; foo: (arg: any) => void; bar: (arg: any) => void; }>) => void
>useState<Data>(() => ({ value: "string", // this should be a number foo: (arg) => setState(arg), bar: (arg) => setState(arg), })) : [Readonly<{ value: number; foo: (arg: any) => void; bar: (arg: any) => void; }>, (s: Readonly<{ value: number; foo: (arg: any) => void; bar: (arg: any) => void; }>) => void]
>useState : <S>(initialState: () => S) => [S, (s: S) => void]
>() => ({ value: "string", // this should be a number foo: (arg) => setState(arg), bar: (arg) => setState(arg), }) : () => { value: string; foo: (arg: any) => void; bar: (arg: any) => void; }
>({ value: "string", // this should be a number foo: (arg) => setState(arg), bar: (arg) => setState(arg), }) : { value: string; foo: (arg: any) => void; bar: (arg: any) => void; }
>{ value: "string", // this should be a number foo: (arg) => setState(arg), bar: (arg) => setState(arg), } : { value: string; foo: (arg: any) => void; bar: (arg: any) => void; }
value: "string", // this should be a number
>value : string
>"string" : "string"
foo: (arg) => setState(arg),
>foo : (arg: any) => void
>(arg) => setState(arg) : (arg: any) => void
>arg : any
>setState(arg) : void
>setState : (s: Readonly<{ value: number; foo: (arg: any) => void; bar: (arg: any) => void; }>) => void
>arg : any
bar: (arg) => setState(arg),
>bar : (arg: any) => void
>(arg) => setState(arg) : (arg: any) => void
>arg : any
>setState(arg) : void
>setState : (s: Readonly<{ value: number; foo: (arg: any) => void; bar: (arg: any) => void; }>) => void
>arg : any
}));
}
|