Search code examples
javascripttypescripttypescript-typings

Overriding interface property type defined in Typescript d.ts file


Is there a way to change the type of interface property defined in a *.d.ts in typescript?

for example: An interface in x.d.ts is defined as

interface A {
  property: number;
}

I want to change it in the typescript files that I write to

interface A {
  property: Object;
}

or even this would work

interface B extends A {
  property: Object;
}

Will this approach work? It didn't work when I tried on my system. Just want to confirm if it's even possible?


Solution

  • I use a method that first filters the fields and then combines them.

    reference Exclude property from type

    interface A {
        x: string
    }
    
    export type B = Omit<A, 'x'> & { x: number };
    

    for interface:

    interface A {
        x: string
    }
    
    interface B extends Omit<A, 'x'> {
      x: number
    }