Typescript 如何扩展NPM包的默认类型?

Typescript 如何扩展NPM包的默认类型?,typescript,typescript-typings,typescript2.0,typescript-generics,typescript1.8,Typescript,Typescript Typings,Typescript2.0,Typescript Generics,Typescript1.8,我们可以使用“declare module”来扩展模块的类型 例如: // typings/node-fetch.d.ts import 'node-fetch'; declare module 'node-fetch' { function kk(): void; } // src/index.ts import fetch, { kk } from 'node-fetch'; kk(); // ok 但这是功能的扩展 现在我想扩展fetch本身 我希望有这样的效果: // src

我们可以使用“declare module”来扩展模块的类型

例如:

// typings/node-fetch.d.ts
import 'node-fetch';
declare module 'node-fetch' {
    function kk(): void;
}

// src/index.ts
import fetch, { kk } from 'node-fetch';
kk(); // ok
但这是功能的扩展

现在我想扩展fetch本身

我希望有这样的效果:

// src/index.ts
import fetch from 'node-fetch';
fetch.foo();
节点获取本身的声明文件如下所示:

// node_modules/@types/node-fetch/index.d.ts
declare function fetch(
    url: RequestInfo,
    init?: RequestInit
): Promise<Response>;

declare namespace fetch {
    function isRedirect(code: number): boolean;
}

export default fetch;
请问您想如何解决这个问题


谢谢

我相信您需要做的是使用此处所示的界面关键字:–

我相信您需要做的是使用此处所示的界面关键字:–

谢谢!但它不能解决这个问题。我想使用'fetch.kk',这样你得到的将是一个接口。还有什么事吗?谢谢!但它不能解决这个问题。我想使用'fetch.kk',这样你得到的将是一个接口。还需要什么吗?
// typings/node-fetch.d.ts
import fetch from 'node-fetch';

declare module 'node-fetch' {
    namespace fetch {
        function foo(): void;
    }
    export default fetch; // Error, Exports and export assignments are not permitted in module augmentations
}