TypeScript/tests/baselines/reference/arrayLiteralContextualType.errors.txt
2014-07-24 19:39:50 -07:00

35 lines
1.1 KiB
Plaintext

==== tests/cases/compiler/arrayLiteralContextualType.ts (2 errors) ====
interface IAnimal {
name: string;
}
class Giraffe {
name = "Giraffe";
neckLength = "3m";
}
class Elephant {
name = "Elephant";
trunkDiameter = "20cm";
}
function foo(animals: IAnimal[]) { }
function bar(animals: { [n: number]: IAnimal }) { }
foo([
new Giraffe(),
new Elephant()
]); // Legal because of the contextual type IAnimal provided by the parameter
bar([
new Giraffe(),
new Elephant()
]); // Legal because of the contextual type IAnimal provided by the parameter
var arr = [new Giraffe(), new Elephant()];
foo(arr); // Error because of no contextual type
~~~
!!! Argument of type '{}[]' is not assignable to parameter of type 'IAnimal[]'.
!!! Type '{}' is not assignable to type 'IAnimal'.
bar(arr); // Error because of no contextual type
~~~
!!! Argument of type '{}[]' is not assignable to parameter of type '{ [x: number]: IAnimal; }'.