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
|
tests/cases/compiler/objectCreationOfElementAccessExpression.ts(53,25): error TS2538: Type 'Cookie' cannot be used as an index type.
tests/cases/compiler/objectCreationOfElementAccessExpression.ts(53,63): error TS2348: Value of type 'typeof Cookie' is not callable. Did you mean to include 'new'?
tests/cases/compiler/objectCreationOfElementAccessExpression.ts(54,41): error TS2538: Type 'Cookie' cannot be used as an index type.
tests/cases/compiler/objectCreationOfElementAccessExpression.ts(54,79): error TS2348: Value of type 'typeof Cookie' is not callable. Did you mean to include 'new'?
==== tests/cases/compiler/objectCreationOfElementAccessExpression.ts (4 errors) ====
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)];
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2538: Type 'Cookie' cannot be used as an index type.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2348: Value of type 'typeof Cookie' is not callable. Did you mean to include 'new'?
var foods2: MonsterFood[] = new PetFood[new IceCream('Mint chocolate chip') , Cookie('Chocolate chip', false) , new Cookie('Peanut butter', true)];
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2538: Type 'Cookie' cannot be used as an index type.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2348: Value of type 'typeof Cookie' is not callable. Did you mean to include 'new'?
|