typescript - Nie je možné pridať vlastnosť do súboru deklarácie rozhrania pre passport-linkedin-oauth2


Snažím sa pridať vlastnosť do rozhrania 'StrategyOption' pre deklaračný súbor 'passport-linkedin-oauth2'. Neoznačuje žiadny modul ani rozhranie. Len exportuje rozhrania a triedu

....
export interface StrategyOption {
    clientID: string;
    clientSecret: string;
    callbackURL: string;

    scopeSeparator?: string;
    enableProof?: boolean;
    profileFields?: string[];
}
....
export class Strategy extends passportStrategy {...}

Skúšal som s nasledujúcimi metódami. Ale všetky zlyhali.

/// <reference types="passport-linkedin-oauth2" />
export {}

declare global {
  export interface StrategyOption {
    scope?: string[] // does not work
  }
}

a

export interface StrategyOption {
  scope?: string[] // does not work
}

a

interface StrategyOption {
  scope?: string[] // does not work
}

Existuje nejaký spôsob, ako pridať vlastnosť do tohto typu deklarácie súboru?

Odpoveď č. 1

No, našiel som ten nápad. Ide to všetko o augmentácii

Takže môj kód by mal byť

import 'passport-linkedin-oauth2'

declare module 'passport-linkedin-oauth2' {
  interface StrategyOption {
    scope?: string[]
  }
}

Ale nie som si istý, aký veľký význam má nasledujúca konfigurácia

V tsconfig.json

"compilerOptions": {
....
    "baseUrl": ".",
    "paths": {
      "*": ["/src/types/*", "node_modules/*"]
    }
}

Potrebujem, aby bola deklarácia súboru rozšírenia v mojom prípade v adresári /src/types/ bez akéhokoľvek podadresára.