🐈

Blob Storageの画像ファイルを取得してFace APIに渡すときの型についてメモ for TypeScript

2021/09/01に公開

はじめに

Blob Storage に保存してある顔写真を取得して Face API で顔検出するコードを TypeScript で書いています。
型周りで少し苦戦したので、解決方法をメモしておきます。

コード

const downloadBlockBlobResponse = await blockBlobClient.download(0);

const faceList = await faceClient.face.detectWithStream(
  () => {
    return downloadBlockBlobResponse.readableStreamBody as NodeJS.ReadableStream;
  }
);
context.log(faceList);

ポイント

  • downloadBlockBlobResponse.readableStreamBody as NodeJS.ReadableStream
    • 型をキャスト(Node.js 上で実行される場合は、undefinedにならない)
  • () => { return downloadBlockBlobResponse.readableStreamBody as NodeJS.ReadableStream; }
    • detectWithStreamの引数の型に合わせる

GitHubで編集を提案

Discussion