sequelize.js - Sequelize cu Typescript nu rezolvă corect tipul
Folosind sequelize v5:
class Organization extends Model<Organization> {
name!: string
}
Organization.init({...}, {sequelize, ...})
Apoi rulând următorul cod:
const organizations = await Organization.findAll()
organizations.forEach(o => console.log(o.name))
Afișează următoarea eroare:
Parameter 'o' implicitly has an 'any' type.
Acest lucru îmi spune că tipul de returnare findAll() nu este dedus ca Promise<Organization[]> așa cum sugerează codul din sequelize:
public static findAll<M extends Model>(this: { new (): M } & typeof Model, options?: FindOptions): Promise<M[]>;
Cum pot face ca apelul findAll() să deducă tipul corect?
Răspuns #1
De fapt, TypeScript deduce tipul corect.
Vezi node_modules/sequelize/types/lib/promise.d.ts
export const Promise: typeof Bluebird;
typeof Bluebird este any, deci Promise este any.
Foarte trist.
