Typescript 将HTMLImageElement分配给TexImageSource
我有一个TexImageSource类型的变量,我正在尝试为它设置一个HTMLImageElement 据我所知,TexaImageSource是:Typescript 将HTMLImageElement分配给TexImageSource,typescript,webgl,Typescript,Webgl,我有一个TexImageSource类型的变量,我正在尝试为它设置一个HTMLImageElement 据我所知,TexaImageSource是: type TexImageSource = ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | OffscreenCanvas 这是我的图像加载代码: return new Promise((resolve: Function, r
type TexImageSource = ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | OffscreenCanvas
这是我的图像加载代码:
return new Promise((resolve: Function, reject: Function) => {
let image: HTMLImageElement = new Image();
image.onload = () => { resolve(image); };
image.onerror = error => { reject(error); };
image.src = url;
});
我得到的错误是:
Type 'unknown' is not assignable to type 'TexImageSource'.
Type '{}' is missing the following properties from type 'OffscreenCanvas': height, width, convertToBlob, getContext, and 4 more.
我真的不明白为什么会出现这个错误,有人能解释一下情况吗?我不是打字脚本专家,但我认为您需要声明
承诺的类型
function loadImage(url: string): Promise<HTMLImageElement> {
return new Promise((resolve: Function, reject: Function) => {
let image: HTMLImageElement = new Image();
image.onload = () => { resolve(image); };
image.onerror = error => { reject(error); };
image.src = url;
});
}
async function main() {
const loadedImage = await loadImage('someImage.png');
const texture: TexImageSource = loadedImage;
}
然后我得到了你的问题显示的错误
你也可以这样做
function loadImage(url: string) {
return new Promise<HTMLImageElement>((resolve: Function, reject: Function) => {
函数loadImage(url:string){
返回新承诺((解析:函数,拒绝:函数)=>{
我不是typescript专家,但我认为您需要声明承诺的类型
function loadImage(url: string): Promise<HTMLImageElement> {
return new Promise((resolve: Function, reject: Function) => {
let image: HTMLImageElement = new Image();
image.onload = () => { resolve(image); };
image.onerror = error => { reject(error); };
image.src = url;
});
}
async function main() {
const loadedImage = await loadImage('someImage.png');
const texture: TexImageSource = loadedImage;
}
然后我得到了你的问题显示的错误
你也可以这样做
function loadImage(url: string) {
return new Promise<HTMLImageElement>((resolve: Function, reject: Function) => {
函数loadImage(url:string){
返回新承诺((解析:函数,拒绝:函数)=>{
function loadImage(url: string) {
return new Promise<HTMLImageElement>((resolve: Function, reject: Function) => {