Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Type mismatch between return type of read and crop.

Abierto
#1,364 1 comentario 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
typescript

Línea de trabajo

Reproduce las asignaciones indicadas con TypeScript 5.7.2, Jimp 1.6.0 y exactOptionalPropertyTypes habilitado, usando Jimp.read y crop como puntos de entrada. Inspecciona las declaraciones de tipos implicadas en ambos métodos y verifica que asignar cualquiera de los resultados al otro ya no produzca la incompatibilidad indicada.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

There is type mismatch between return type of read and crop. I'm not sure if this is the intended behavior.

Expected Behavior

No type error occurs.

Current Behavior

Type Error occurs.

Failure Information (for bugs)

Steps to Reproduce

let base = await Jimp.read('dummy');
let cropped = base.crop({ y: 0, x: 0, h: 100, w: 100 });

//Type error occurs!
base = cropped;

//Type error occurs!
cropped = base;

Context

  • Jimp Version: 1.6.0
  • Operating System: Windows 11 (not using WSL or WSL2)
  • Node version: 22.12.0
  • TypeScript Version: 5.7.2

Failure Logs

base = cropped;

Type 'JimpInstanceMethods<{ bitmap: Bitmap; background: number; formats: Format<any, undefined, undefined>[]; mime?: string; inspect(): string; toString(): string; readonly width: number; readonly height: number; ... 10 more ...; scanIterator(x?: number | undefined, y?: number | undefined, w?: number | undefined, h?: numb...' is not assignable to type '{ bitmap: Bitmap; background: number; formats: Format<any, undefined, undefined>[]; mime?: string; inspect(): string; toString(): string; readonly width: number; readonly height: number; ... 10 more ...; scanIterator(x?: number | undefined, y?: number | undefined, w?: number | undefined, h?: number | undefined): Gen...' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.
Type 'JimpInstanceMethods<{ bitmap: Bitmap; background: number; formats: Format<any, undefined, undefined>[]; mime?: string; inspect(): string; toString(): string; readonly width: number; readonly height: number; ... 10 more ...; scanIterator(x?: number | undefined, y?: number | undefined, w?: number | undefined, h?: numb...' is not assignable to type '{ bitmap: Bitmap; background: number; formats: Format<any, undefined, undefined>[]; mime?: string; inspect(): string; toString(): string; readonly width: number; readonly height: number; ... 10 more ...; scanIterator(x?: number | undefined, y?: number | undefined, w?: number | undefined, h?: number | undefined): Gen...' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.
Types of property 'write' are incompatible.
Type '<Extension extends string, Mime extends (Record<"bmp", "image/bmp"> extends infer T ? T extends Record<"bmp", "image/bmp"> ? T extends Record<Extension, infer M> ? M : never : never : never) | (Record<"tiff", "image/tiff"> extends infer T_1 ? T_1 extends Record<"tiff", "image/tiff"> ? T_1 extends Record<Extension, i...' is not assignable to type '<Extension extends string, Mime extends (Record<"bmp", "image/bmp"> extends infer T ? T extends Record<"bmp", "image/bmp"> ? T extends Record<Extension, infer M> ? M : never : never : never) | (Record<"tiff", "image/tiff"> extends infer T_1 ? T_1 extends Record<"tiff", "image/tiff"> ? T_1 extends Record<Extension, i...'. Two different types with this name exist, but they are unrelated.
Types of parameters 'options' and 'options' are incompatible.
Type 'Options | undefined' is not assignable to type '(Record<"image/bmp", { palette?: BmpColor[] | undefined; colors?: number | undefined; importantColors?: number | undefined; hr?: number | undefined; vr?: number | undefined; reserved1?: number | undefined; reserved2?: number | undefined; }> extends Record<...> ? O : never) | ... 5 more ... | undefined'.
Type 'Options' is not assignable to type '(Record<"image/bmp", { palette?: BmpColor[] | undefined; colors?: number | undefined; importantColors?: number | undefined; hr?: number | undefined; vr?: number | undefined; reserved1?: number | undefined; reserved2?: number | undefined; }> extends Record<...> ? O : never) | ... 5 more ... | undefined'.
Type '(Record<"image/bmp", { palette?: BmpColor[] | undefined; colors?: number | undefined; importantColors?: number | undefined; hr?: number | undefined; vr?: number | undefined; reserved1?: number | undefined; reserved2?: number | undefined; }> extends Record<...> ? O : never) | ... 4 more ... | (Record<...> extends Rec...' is not assignable to type '(Record<"image/bmp", { palette?: BmpColor[] | undefined; colors?: number | undefined; importantColors?: number | undefined; hr?: number | undefined; vr?: number | undefined; reserved1?: number | undefined; reserved2?: number | undefined; }> extends Record<...> ? O : never) | ... 5 more ... | undefined'.
Type 'Record<"image/bmp", { palette?: BmpColor[] | undefined; colors?: number | undefined; importantColors?: number | undefined; hr?: number | undefined; vr?: number | undefined; reserved1?: number | undefined; reserved2?: number | undefined; }> extends Record<...> ? O : never' is not assignable to type '(Record<"image/bmp", { palette?: BmpColor[] | undefined; colors?: number | undefined; importantColors?: number | undefined; hr?: number | undefined; vr?: number | undefined; reserved1?: number | undefined; reserved2?: number | undefined; }> extends Record<...> ? O : never) | ... 5 more ... | undefined'.
Type '{ palette?: BmpColor[] | undefined; colors?: number | undefined; importantColors?: number | undefined; hr?: number | undefined; vr?: number | undefined; reserved1?: number | undefined; reserved2?: number | undefined; }' is not assignable to type '(Record<"image/bmp", { palette?: BmpColor[] | undefined; colors?: number | undefined; importantColors?: number | undefined; hr?: number | undefined; vr?: number | undefined; reserved1?: number | undefined; reserved2?: number | undefined; }> extends Record<...> ? O : never) | ... 5 more ... | undefined'.
Type '{ palette?: BmpColor[] | undefined; colors?: number | undefined; importantColors?: number | undefined; hr?: number | undefined; vr?: number | undefined; reserved1?: number | undefined; reserved2?: number | undefined; }' is not assignable to type 'Record<"image/png", Omit<any, "filterType" | "colorType" | "inputColorType"> & { filterType?: PNGFilterType; colorType?: PNGColorType; inputColorType?: PNGColorType; }> extends Record<...> ? O : never'.

cropped = base

Type '{ bitmap: Bitmap; background: number; formats: Format<any, undefined, undefined>[]; mime?: string; inspect(): string; toString(): string; readonly width: number; readonly height: number; ... 10 more ...; scanIterator(x?: number | undefined, y?: number | undefined, w?: number | undefined, h?: number | undefined): Gen...' is not assignable to type 'JimpInstanceMethods<{ bitmap: Bitmap; background: number; formats: Format<any, undefined, undefined>[]; mime?: string; inspect(): string; toString(): string; readonly width: number; readonly height: number; ... 10 more ...; scanIterator(x?: number | undefined, y?: number | undefined, w?: number | undefined, h?: numb...' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.
Type '{ bitmap: import("d:/nodejs/excelspill/node_modules/@jimp/types/dist/esm/index", { with: { "resolution-mode": "import" } }).Bitmap; background: number; formats: import("d:/nodejs/excelspill/node_modules/@jimp/types/dist/esm/index", { with: { "resolution-mode": "import" } }).Format<any, undefined, undefined>[]; ... 1...' is not assignable to type '{ bitmap: import("d:/nodejs/excelspill/node_modules/@jimp/types/dist/esm/index", { with: { "resolution-mode": "import" } }).Bitmap; background: number; formats: import("d:/nodejs/excelspill/node_modules/@jimp/types/dist/esm/index", { with: { "resolution-mode": "import" } }).Format<any, undefined, undefined>[]; ... 1...'. Two different types with this name exist, but they are unrelated.
Types of property 'write' are incompatible.
Type '<Extension extends string, Mime extends (Record<"bmp", "image/bmp"> extends infer T ? T extends Record<"bmp", "image/bmp"> ? T extends Record<Extension, infer M> ? M : never : never : never) | (Record<"tiff", "image/tiff"> extends infer T_1 ? T_1 extends Record<"tiff", "image/tiff"> ? T_1 extends Record<Extension, i...' is not assignable to type '<Extension extends string, Mime extends (Record<"bmp", "image/bmp"> extends infer T ? T extends Record<"bmp", "image/bmp"> ? T extends Record<Extension, infer M> ? M : never : never : never) | (Record<"tiff", "image/tiff"> extends infer T_1 ? T_1 extends Record<"tiff", "image/tiff"> ? T_1 extends Record<Extension, i...'. Two different types with this name exist, but they are unrelated.
Types of parameters 'options' and 'options' are incompatible.
Type 'Options | undefined' is not assignable to type '(Record<"image/bmp", { palette?: BmpColor[] | undefined; colors?: number | undefined; importantColors?: number | undefined; hr?: number | undefined; vr?: number | undefined; reserved1?: number | undefined; reserved2?: number | undefined; }> extends Record<...> ? O : never) | ... 5 more ... | undefined'.
Type 'Options' is not assignable to type '(Record<"image/bmp", { palette?: BmpColor[] | undefined; colors?: number | undefined; importantColors?: number | undefined; hr?: number | undefined; vr?: number | undefined; reserved1?: number | undefined; reserved2?: number | undefined; }> extends Record<...> ? O : never) | ... 5 more ... | undefined'.
Type '(Record<"image/bmp", { palette?: BmpColor[] | undefined; colors?: number | undefined; importantColors?: number | undefined; hr?: number | undefined; vr?: number | undefined; reserved1?: number | undefined; reserved2?: number | undefined; }> extends Record<...> ? O : never) | ... 4 more ... | (Record<...> extends Rec...' is not assignable to type '(Record<"image/bmp", { palette?: BmpColor[] | undefined; colors?: number | undefined; importantColors?: number | undefined; hr?: number | undefined; vr?: number | undefined; reserved1?: number | undefined; reserved2?: number | undefined; }> extends Record<...> ? O : never) | ... 5 more ... | undefined'.
Type 'Record<"image/bmp", { palette?: BmpColor[] | undefined; colors?: number | undefined; importantColors?: number | undefined; hr?: number | undefined; vr?: number | undefined; reserved1?: number | undefined; reserved2?: number | undefined; }> extends Record<...> ? O : never' is not assignable to type '(Record<"image/bmp", { palette?: BmpColor[] | undefined; colors?: number | undefined; importantColors?: number | undefined; hr?: number | undefined; vr?: number | undefined; reserved1?: number | undefined; reserved2?: number | undefined; }> extends Record<...> ? O : never) | ... 5 more ... | undefined'.
Type '{ palette?: BmpColor[] | undefined; colors?: number | undefined; importantColors?: number | undefined; hr?: number | undefined; vr?: number | undefined; reserved1?: number | undefined; reserved2?: number | undefined; }' is not assignable to type '(Record<"image/bmp", { palette?: BmpColor[] | undefined; colors?: number | undefined; importantColors?: number | undefined; hr?: number | undefined; vr?: number | undefined; reserved1?: number | undefined; reserved2?: number | undefined; }> extends Record<...> ? O : never) | ... 5 more ... | undefined'.
Type '{ palette?: BmpColor[] | undefined; colors?: number | undefined; importantColors?: number | undefined; hr?: number | undefined; vr?: number | undefined; reserved1?: number | undefined; reserved2?: number | undefined; }' is not assignable to type 'Record<"image/png", Omit<any, "filterType" | "colorType" | "inputColorType"> & { filterType?: PNGFilterType; colorType?: PNGColorType; inputColorType?: PNGColorType; }> extends Record<...> ? O : never'.

Lenguaje dominante
TypeScript
Estrellas
14.7k
Forks
777
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de jimp-dev/jimp

Todos los issues de jimp-dev/jimp

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.