Typescript:如何重新定义类的静态方法签名

Typescript:如何重新定义类的静态方法签名,typescript,Typescript,我有一个外部模块一些模块,它实现了类: export declare class Some<T> { ... static create<T>(): Some<T>; map<U>(x: U): Some<U>; } export default Some 使用名称空间关键字将函数合并到类中 declare module 'some-module' { export class Some<T> {

我有一个外部模块
一些模块
,它实现了类:

export declare class Some<T> {
   ...
   static create<T>(): Some<T>;
   map<U>(x: U): Some<U>;
}

export default Some

使用
名称空间
关键字将函数合并到类中

declare module 'some-module' {
  export class Some<T> {
    map<U extends number>(x: U): Some<U>;
  }

  export namespace Some {
    const create: <T extends number>() => Some<T>;
  }
}

使用
名称空间
关键字将函数合并到类中

declare module 'some-module' {
  export class Some<T> {
    map<U extends number>(x: U): Some<U>;
  }

  export namespace Some {
    const create: <T extends number>() => Some<T>;
  }
}

这对我不起作用。所以使用名称空间,我可以添加静态方法,但旧的定义不会被重写。您是在扩充那个类还是重写它?如果保存
模块的文件声明为“some module”{
definition没有导入/导出语句,它将完全覆盖该定义。
declare module
位于
d.ts
文件中,该文件被嵌入以覆盖外部模块的定义,在external module类中,它在
.d.ts
中进行了描述,如OP中所示。它不适用于我。因此,通过命名空间,我可以添加static方法,但旧定义未被重写。您是在扩充该类还是重写它?如果保存
的文件声明模块“some module”{
定义没有导入/导出语句,它将完全覆盖该定义。
声明模块
位于插入以覆盖外部模块定义的
d.ts
文件中,在外部模块类中,在其
.d.ts
中进行了描述,如OP中所示。
declare module 'some-module' {
  export class Some<T> {
    map<U extends number>(x: U): Some<U>;
  }

  export namespace Some {
    const create: <T extends number>() => Some<T>;
  }
}
import { Some } from 'some-module';

new Some();
Some.create();