File: typeInferenceFBoundedTypeParams.js

package info (click to toggle)
node-typescript 3.3.3333-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 324,548 kB
  • sloc: makefile: 6; sh: 3
file content (39 lines) | stat: -rw-r--r-- 930 bytes parent folder | download | duplicates (7)
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
//// [typeInferenceFBoundedTypeParams.ts]
// Example from #6037

function fold<a, r>(values: a[], result: r, fold: (result: r, value: a) => r): r {
    for (let value of values) {
        result = fold(result, value);
    }
    return result;
}

function append<a, b extends a>(values: a[], value: b): a[] {
    values.push(value);
    return values;
}

fold(
    [1, 2, 3],
    [] as [string, string][],
    (result, value) => append(
        result,
        ["", ""]
    )
);


//// [typeInferenceFBoundedTypeParams.js]
// Example from #6037
function fold(values, result, fold) {
    for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {
        var value = values_1[_i];
        result = fold(result, value);
    }
    return result;
}
function append(values, value) {
    values.push(value);
    return values;
}
fold([1, 2, 3], [], function (result, value) { return append(result, ["", ""]); });