🐈
Blob Storageの画像ファイルを取得してFace APIに渡すときの型についてメモ for TypeScript
はじめに
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
にならない)
- 型をキャスト(Node.js 上で実行される場合は、
-
() => { return downloadBlockBlobResponse.readableStreamBody as NodeJS.ReadableStream; }
-
detectWithStream
の引数の型に合わせる
-
型
-
blockBlobClient.download.readableStreamBody
の戻り値の型はNodeJS.ReadableStream | undefined
-
faceClient.face.detectWithStream
の引数の型は() => NodeJS.ReadableStream
Discussion