File: intersectionsAndReadonlyProperties.types

package info (click to toggle)
node-typescript 4.9.5%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 533,908 kB
  • sloc: javascript: 2,018,330; makefile: 7; sh: 1
file content (50 lines) | stat: -rw-r--r-- 1,146 bytes parent folder | download | duplicates (3)
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
=== tests/cases/compiler/intersectionsAndReadonlyProperties.ts ===
// readonly and non-readonly
type Intersection1 = { readonly a: number } & { a: number };
>Intersection1 : { readonly a: number; } & { a: number; }
>a : number
>a : number

declare let i1: Intersection1;
>i1 : Intersection1

i1.a = 2;
>i1.a = 2 : 2
>i1.a : number
>i1 : Intersection1
>a : number
>2 : 2

// getter and setter
type Intersection2 = { get a(): number } & { set a(v: number) };
>Intersection2 : { readonly a: number; } & { a: number; }
>a : number
>a : number
>v : number

declare let i2: Intersection2;
>i2 : Intersection2

i2.a = 2;
>i2.a = 2 : 2
>i2.a : number
>i2 : Intersection2
>a : number
>2 : 2

// assignment to an all read-only property should still be disallowed
type IntersectionAllReadonly = { readonly a: number } & { get a(): number };
>IntersectionAllReadonly : { readonly a: number; } & { readonly a: number; }
>a : number
>a : number

declare let ia: IntersectionAllReadonly;
>ia : IntersectionAllReadonly

ia.a = 2; // Error
>ia.a = 2 : 2
>ia.a : any
>ia : IntersectionAllReadonly
>a : any
>2 : 2