【发布时间】:2019-03-06 15:30:33
【问题描述】:
尝试在 TypeScript 中使用此代码:
convertURIToImageData(URI) {
return new Promise((resolve, reject) => {
if (URI == null) { return reject(); }
const canvas = document.createElement('canvas');
const context = canvas.getContext('2d');
const image = new Image();
image.addEventListener('load', () => {
canvas.width = image.width;
canvas.height = image.height;
context.drawImage(image, 0, 0, canvas.width, canvas.height);
const imageData = context.getImageData(0, 0, canvas.width, canvas.height);
resolve(imageData);
}, false);
image.src = URI;
});}
从 Promise 返回 ImageData 但我得到的只是{}
像这样使用它:
this.convertURIToImageData('url').then((img) => {
// do stuff with ImageData
})
获取:
Argument of type '{}' is not assignable to parameter of type 'ImageData'. Type '{}' is missing the following properties from type 'ImageData': data, height, width
【问题讨论】:
-
你如何确定它只是
{}? -
如果您的意图是获得
data:image类型的返回,您应该使用canvas.toDataURL("image/png");和您想要的图像MIME 类型。 -
很难说,因为你实际上并没有添加关键的代码,但我想这是How do I return the response from an asynchronous call?的副本
-
{}是 TypeScript 报告的返回类型,还是运行时的实际值? -
它实际上在 Angular 构建/服务中,得到:“{}”类型的参数不可分配给“ImageData”类型的参数。类型“{}”缺少类型“ImageData”的以下属性:数据、高度、宽度
标签: javascript typescript promise