Vyhledávání na webu

javascript - Typescript Přidání typů k argumentům metod knihoven


Používám externí knihovnu pg-mem, která zpřístupňuje LibAdapters a má metodu createTypeormConnection, která přijímá několik argumentů, ale typu any.

export interface LibAdapters {
  createTypeormConnection(typeOrmConnection: any, queryLatency?: number): any;
}

Chci specifikovat přesný typ těchto argumentů, protože dostávám spoustu lint chyb:

Unsafe return of an `any` typed value.eslint@typescript-eslint/no-unsafe-return

Jak mohu specifikovat typy argumentů a návratový typ metody?

Odpověď č. 1

Existující typy můžete rozšířit pomocí slučování deklarací:

declare module "pg-mem" {
    interface LibAdapters {
        createTypeormConnection(typeOrmConnection: SomeType, queryLatency?: number): SomeOtherType
    }
}

Všimněte si, že to přidá přetížení createTypeormConnection namísto jeho přepsání, takže pokud zavoláte createTypeormConnection s hodnotou jiného typu než SomeType, stále dostanete any.

Související články