File: readonlyArraysAndTuples.js

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 (77 lines) | stat: -rw-r--r-- 1,961 bytes parent folder | download | duplicates (2)
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//// [readonlyArraysAndTuples.ts]
type T10 = string[];
type T11 = Array<string>;
type T12 = readonly string[];
type T13 = ReadonlyArray<string>;

type T20 = [number, number];
type T21 = readonly [number, number];

type T30 = readonly string;  // Error
type T31<T> = readonly T;  // Error
type T32 = readonly readonly string[];  // Error
type T33 = readonly Array<string>;  // Error

function f1(ma: string[], ra: readonly string[], mt: [string, string], rt: readonly [string, string]) {
    ma = ra;  // Error
    ma = mt;
    ma = rt;  // Error
    ra = ma;
    ra = mt;
    ra = rt;
    mt = ma;  // Error
    mt = ra;  // Error
    mt = rt;  // Error
    rt = ma;  // Error
    rt = ra;  // Error
    rt = mt;
}

declare var v: readonly[number, number, ...number[]];
v[0] = 1;        // Error
v[1] = 1;        // Error
v[2] = 1;        // Error
delete v[2];     // Error
v[0 + 1] = 1;    // Error
v[0 + 2] = 1;    // Error
delete v[0 + 1]; // Error


//// [readonlyArraysAndTuples.js]
"use strict";
function f1(ma, ra, mt, rt) {
    ma = ra; // Error
    ma = mt;
    ma = rt; // Error
    ra = ma;
    ra = mt;
    ra = rt;
    mt = ma; // Error
    mt = ra; // Error
    mt = rt; // Error
    rt = ma; // Error
    rt = ra; // Error
    rt = mt;
}
v[0] = 1; // Error
v[1] = 1; // Error
v[2] = 1; // Error
delete v[2]; // Error
v[0 + 1] = 1; // Error
v[0 + 2] = 1; // Error
delete v[0 + 1]; // Error


//// [readonlyArraysAndTuples.d.ts]
type T10 = string[];
type T11 = Array<string>;
type T12 = readonly string[];
type T13 = ReadonlyArray<string>;
type T20 = [number, number];
type T21 = readonly [number, number];
type T30 = readonly string;
type T31<T> = readonly T;
type T32 = readonly readonly string[];
type T33 = readonly Array<string>;
declare function f1(ma: string[], ra: readonly string[], mt: [string, string], rt: readonly [string, string]): void;
declare var v: readonly [number, number, ...number[]];