照片文件里面有一些有用的元数据,比如拍摄照片用的设备,拍摄参数,处理照片用的软件等等,从图像文件里提取这些数据,需要用到一个包。在终端,先给项目安装一个包,npm install 安装一个 exif-parser。
这个包没有类型定义,我们可以根据这个包的源代码,然后自己给它定义一个类型定义。在项目根目录的下面,新建一个文件,放在 types 这个目录的下面,名字是 exif-parser.d.ts ,文件名要加上 .d.ts 后缀。
在这个文件里,可以 declare 一个 module ,名字是 exif-parser , 它里面有一个 function ,名字叫 create ,这个方法接收一个 buffer 参数,类型设置成 Buffer,它返回的东西是一个 Parser 。
下面再定义一个 interface,名字是 Parser,这个 Parser 里面有个 parse 方法,返回的值的类型设置成 ExifResult 。
然后再定义一个 interface,名字是 ExifResult ,表示解析之后得到的元数据,这个数据里面有 tags ,类型设置成 any,还有 startMarker 类型是 any,还有 imageSize 类型是 any ,thumbnailOffset 类型是 number,thumbnailLength 类型是 number,thumbnailType 类型是 number ,最后还有一个 app1Offset,类型是 number。