File: objectCreationOfElementAccessExpression.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 (152 lines) | stat: -rw-r--r-- 5,166 bytes parent folder | download
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
//// [objectCreationOfElementAccessExpression.ts]
class Food {
    private amount: number;
    constructor(public name: string) {
        this.amount = 100;
    }
    public eat(amountToEat: number): boolean {
        this.amount -= amountToEat;
        if (this.amount <= 0) {
            this.amount = 0;
            return false;
        }
        else {
            return true;
        }
    }
}
class MonsterFood extends Food {
    constructor(name: string, public flavor: string) {
        super(name);
    }
}
class IceCream extends MonsterFood {
    private isDairyFree: boolean;
    constructor(public flavor: string) {
        super("Ice Cream", flavor);
    }
}
class Cookie extends MonsterFood {
    constructor(public flavor: string, public isGlutenFree: boolean) {
        super("Cookie", flavor);
    }
}
class PetFood extends Food {
    constructor(name: string, public whereToBuy: number) {
        super(name);
    }
}
class ExpensiveOrganicDogFood extends PetFood {
    constructor(public whereToBuy: number) {
        super("Origen", whereToBuy);
    }
}
class ExpensiveOrganicCatFood extends PetFood {
    constructor(public whereToBuy: number, public containsFish: boolean) {
        super("Nature's Logic", whereToBuy);
    }
}
class Slug {
    // This is NOT a food!!!
}

// ElementAccessExpressions can only contain one expression.  There should be a parse error here.
var foods = new PetFood[new IceCream('Mint chocolate chip') , Cookie('Chocolate chip', false) , new Cookie('Peanut butter', true)];
var foods2: MonsterFood[] = new PetFood[new IceCream('Mint chocolate chip') , Cookie('Chocolate chip', false) , new Cookie('Peanut butter', true)];


//// [objectCreationOfElementAccessExpression.js]
var __extends = (this && this.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
var Food = /** @class */ (function () {
    function Food(name) {
        this.name = name;
        this.amount = 100;
    }
    Food.prototype.eat = function (amountToEat) {
        this.amount -= amountToEat;
        if (this.amount <= 0) {
            this.amount = 0;
            return false;
        }
        else {
            return true;
        }
    };
    return Food;
}());
var MonsterFood = /** @class */ (function (_super) {
    __extends(MonsterFood, _super);
    function MonsterFood(name, flavor) {
        var _this = _super.call(this, name) || this;
        _this.flavor = flavor;
        return _this;
    }
    return MonsterFood;
}(Food));
var IceCream = /** @class */ (function (_super) {
    __extends(IceCream, _super);
    function IceCream(flavor) {
        var _this = _super.call(this, "Ice Cream", flavor) || this;
        _this.flavor = flavor;
        return _this;
    }
    return IceCream;
}(MonsterFood));
var Cookie = /** @class */ (function (_super) {
    __extends(Cookie, _super);
    function Cookie(flavor, isGlutenFree) {
        var _this = _super.call(this, "Cookie", flavor) || this;
        _this.flavor = flavor;
        _this.isGlutenFree = isGlutenFree;
        return _this;
    }
    return Cookie;
}(MonsterFood));
var PetFood = /** @class */ (function (_super) {
    __extends(PetFood, _super);
    function PetFood(name, whereToBuy) {
        var _this = _super.call(this, name) || this;
        _this.whereToBuy = whereToBuy;
        return _this;
    }
    return PetFood;
}(Food));
var ExpensiveOrganicDogFood = /** @class */ (function (_super) {
    __extends(ExpensiveOrganicDogFood, _super);
    function ExpensiveOrganicDogFood(whereToBuy) {
        var _this = _super.call(this, "Origen", whereToBuy) || this;
        _this.whereToBuy = whereToBuy;
        return _this;
    }
    return ExpensiveOrganicDogFood;
}(PetFood));
var ExpensiveOrganicCatFood = /** @class */ (function (_super) {
    __extends(ExpensiveOrganicCatFood, _super);
    function ExpensiveOrganicCatFood(whereToBuy, containsFish) {
        var _this = _super.call(this, "Nature's Logic", whereToBuy) || this;
        _this.whereToBuy = whereToBuy;
        _this.containsFish = containsFish;
        return _this;
    }
    return ExpensiveOrganicCatFood;
}(PetFood));
var Slug = /** @class */ (function () {
    function Slug() {
    }
    return Slug;
}());
// ElementAccessExpressions can only contain one expression.  There should be a parse error here.
var foods = new PetFood[new IceCream('Mint chocolate chip'), Cookie('Chocolate chip', false), new Cookie('Peanut butter', true)];
var foods2 = new PetFood[new IceCream('Mint chocolate chip'), Cookie('Chocolate chip', false), new Cookie('Peanut butter', true)];