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();