web-dev-qa-db-ja.com

FlowtypeのES6マップ

ecmascript-6flowtypeMapオブジェクトを扱う適切な方法とは何ですか?

const animals:Map<id, Animal> = new Map();

function feedAnimal(cageNumber:number) {
    const animal:Animal = animals.get(cageNumber);

    ...
}

エラー

const animal:Animal = animals.get(cageNumber);
                      ^^^^^^^^^^^^^^^^^^^^^^^^ call of method `get`

const animal:Animal = animals.get(cageNumber);
                      ^^^^^^^^^^^^^^^^^^^^^^^^ undefined. This type is incompatible with
const animal:Animal = animals.get(cageNumber);
                      ^^^^^^^ Animal

フロータイプマップ宣言

18
mate64

animals.get(cageNumber)のタイプは?AnimalAnimalではありません。未定義ではないことを確認する必要があります。

function feedAnimal(cageNumber:number) {
  const animal = animals.get(cageNumber);

  if (!animal) {
    return;
  } 
  // ...
}
14
vkurchatkin