70 lines
3.4 KiB
Plaintext
70 lines
3.4 KiB
Plaintext
tests/cases/compiler/objectCreationOfElementAccessExpression.ts(53,17): error TS2342: An index expression argument must be of type 'string', 'number', or 'any'.
|
|
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,33): error TS2342: An index expression argument must be of type 'string', 'number', or 'any'.
|
|
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 TS2342: An index expression argument must be of type 'string', 'number', or 'any'.
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
!!! 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 TS2342: An index expression argument must be of type 'string', 'number', or 'any'.
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
!!! error TS2348: Value of type 'typeof Cookie' is not callable. Did you mean to include 'new'?
|
|
|