Type mismatch between return type of read and crop.
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
- Área
- computer-graphics
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
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de jimp-dev/jimp
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Add blit changes to migration guide.Posiblemente ocupada @ryanchou1994 la tomó hace 44 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
documentation help wanted solution in issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 62/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
Todos los issues de jimp-dev/jimp
Issues similares
-
BeOS .json missingAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
mihaip/infinite-mac#475 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
marmelab/atomic-crm#401 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
enhancement good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Deltares/webgl-streamline-visualizer#83 ·
Los mantenedores suelen responder en 1 día
-
ubicloud: usage is an awk syntax error on macOS, which also disables the vCPU quota preflightAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día