gpt4 book ai didi

reactjs - react typescript : Type 'null' is not assignable to type 'CanvasRenderingContext2D'

转载 作者:行者123 更新时间:2023-12-02 16:48:38 35 4
gpt4 key购买 nike

我似乎能够创建 Canvas ,但是当我开始获取上下文时

  const resizeImage = async (maxSize: number) => {
const image = originalImage;
const id = positionId;
const resizeCanvas = document.createElement('canvas');
resizeCanvas.width = maxSize;
resizeCanvas.height = maxSize;
const ctx: CanvasRenderingContext2D = resizeCanvas.getContext('2D');
// ^ Error
...

错误是

Type 'CanvasRenderingContext2D | ImageBitmapRenderingContext | WebGLRenderingContext | WebGL2RenderingContext | null' is not assignable to type 'CanvasRenderingContext2D'.
Type 'null' is not assignable to type 'CanvasRenderingContext2D'.ts(2322)

最佳答案

该错误意味着 resizeCanvas.getContext('2D') 可以返回 null,但您将其分配给 CanvasRenderingContext2D 类型的变量(即不能为 null ).所以你需要在赋值之前确保结果不为空。另外我想你想确保它的类型是 CanvasRenderingContext2D 而不是 ImageBitmapRenderingContext 等。你可以这样做:

 const resizeImage = async (maxSize: number) => {
const image = originalImage;
const id = positionId;
const resizeCanvas = document.createElement('canvas');
resizeCanvas.width = maxSize;
resizeCanvas.height = maxSize;
const res = resizeCanvas.getContext('2D');
if (!res || !(res instanceof CanvasRenderingContext2D)) {
throw new Error('Failed to get 2D context');
}
const ctx: CanvasRenderingContext2D = res;

关于reactjs - react typescript : Type 'null' is not assignable to type 'CanvasRenderingContext2D' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59591030/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com