loopbackio / loopbackio/loopback-next
TypeScript error: Property 'toString' does not exist in has-many-through.inclusion-resolver.ts after upgrading to @loopback/repository@8.0.2
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 5.1k
- Forks
- 1.1k
- Ø Merge
- 2 T. 21 Std.
- Gemergte PRs (30 T.)
- 27
Beschreibung
Describe the bug
Steps to reproduce
- Upgrade
@loopback/repositoryfrom6.1.5to8.0.2(other LoopBack packages remain at compatible versions). - Build the project with TypeScript strict mode enabled.
Current behavior
TypeScript compilation fails with:
node_modules/@loopback/repository/src/relations/has-many/has-many-through.inclusion-resolver.ts:255:36 - error TS2339: Property 'toString' does not exist on type 'NonNullable<(Target & TargetRelations)[Extract<keyof Target, string>]>'.
255 targetEntity[targetKey]?.toString() ?? targetEntity[targetKey],
node_modules/@loopback/repository/src/relations/has-many/has-many-through.inclusion-resolver.ts:269:35 - error TS2339: Property 'toString' does not exist on type 'NonNullable<(Through & ThroughRelations)[Extract<keyof Through, string>]>'.
269 x => x[throughKeyTo]?.toString() ?? x[throughKeyTo],
### Logs
```shell
```
### Additional information
_No response_
### Reproduction
import {Entity, model, property, hasMany} from '@loopback/repository'; @model() export class Category extends Entity { @property({id: true}) id: number; @hasMany(() => Product, {through: {model: () => CategoryProduct}}) products?: Product[]; } @model() export class Product extends Entity { @property({id: true}) id: number; } @model() export class CategoryProduct extends Entity { @property() categoryId: number; @property() productId: number; }
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Öffne src/relations/has-many/has-many-through.inclusion-resolver.ts und untersuche die Ausdrücke in den Zeilen 255 und 269, die im strict mode TS2339 auslösen. Reproduziere das Upgrade und den strikten TypeScript-Build mit den Modellen Category, Product und CategoryProduct; abgeschlossen ist die Aufgabe, wenn der Build ohne diese Fehler erfolgreich ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- nodejs, typescript
- Bereich
- backend
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 42/100