What is the appropriate way to deal with ecmascript-6 Map
objects in flowtype?
const animals:Map<id, Animal> = new Map();
function feedAnimal(cageNumber:number) {
const animal:Animal = animals.get(cageNumber);
...
}
Error
const animal:Animal = animals.get(cageNumber);
^^^^^^^^^^^^^^^^^^^^^^^^ call of method `get`
const animal:Animal = animals.get(cageNumber);
^^^^^^^^^^^^^^^^^^^^^^^^ undefined. This type is inpatible with
const animal:Animal = animals.get(cageNumber);
^^^^^^^ Animal
Flowtype Map declaration
What is the appropriate way to deal with ecmascript-6 Map
objects in flowtype?
const animals:Map<id, Animal> = new Map();
function feedAnimal(cageNumber:number) {
const animal:Animal = animals.get(cageNumber);
...
}
Error
const animal:Animal = animals.get(cageNumber);
^^^^^^^^^^^^^^^^^^^^^^^^ call of method `get`
const animal:Animal = animals.get(cageNumber);
^^^^^^^^^^^^^^^^^^^^^^^^ undefined. This type is inpatible with
const animal:Animal = animals.get(cageNumber);
^^^^^^^ Animal
Flowtype Map declaration
Share Improve this question edited Aug 20, 2016 at 14:11 mate64 asked Aug 20, 2016 at 14:03 mate64mate64 10.1k17 gold badges65 silver badges98 bronze badges1 Answer
Reset to default 14Type of animals.get(cageNumber)
is ?Animal
, not Animal
. You need to check that it's not undefined:
function feedAnimal(cageNumber:number) {
const animal = animals.get(cageNumber);
if (!animal) {
return;
}
// ...
}