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 59 60 61 62 63
|
=== tests/cases/compiler/divergentAccessors1.ts ===
// Accessors in interfaces/types
{
interface IHasGetSet {
get foo(): number;
>foo : number
set foo(v: number | string);
>foo : number
>v : string | number
}
const ihgs: IHasGetSet = null as any;
>ihgs : IHasGetSet
>null as any : any
>null : null
ihgs.foo = "32";
>ihgs.foo = "32" : "32"
>ihgs.foo : string | number
>ihgs : IHasGetSet
>foo : string | number
>"32" : "32"
let r_ihgs_foo: number = ihgs.foo;
>r_ihgs_foo : number
>ihgs.foo : number
>ihgs : IHasGetSet
>foo : number
}
{
type T_HasGetSet = {
>T_HasGetSet : { foo: number; }
get foo(): number;
>foo : number
set foo(v: number | string);
>foo : number
>v : string | number
}
const t_hgs: T_HasGetSet = null as any;
>t_hgs : { foo: number; }
>null as any : any
>null : null
t_hgs.foo = "32";
>t_hgs.foo = "32" : "32"
>t_hgs.foo : string | number
>t_hgs : { foo: number; }
>foo : string | number
>"32" : "32"
let r_t_hgs_foo: number = t_hgs.foo;
>r_t_hgs_foo : number
>t_hgs.foo : number
>t_hgs : { foo: number; }
>foo : number
}
|