增强库中的类型声明

Pic*_*cci 7 typescript typescript-typings

我导入了一个库mycoollib,该库驻留在其中node_modules并具有以下文件夹和文件结构

node_modules
   - mycoollib
      - src
          mycoollogic.js
      - types
          index.d.ts
Run Code Online (Sandbox Code Playgroud)

,其中index.d.ts包含 的类型定义mycoollib,是这样的

/// <reference types="node" />

export type MyCoolType = {
  func1: () => void
  func2: () => void
}
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,我需要增强MyCoolType类型定义,例如添加第三个函数。所以我像这样在我的文件夹中创建my-cool-type-augmentation.d.ts文件src

declare namespace mycoollib {
    export type MyCoolType = {
      augmentedFunction: () => void
    }
}
Run Code Online (Sandbox Code Playgroud)

但这个解决方案似乎不起作用,因为当我尝试augmentedFunction在 类型的对象上使用时,编译器会发出一个问题信号MyCoolType

我也尝试过使用模块声明,如下所示

declare module "mycoollib" {
    export type MyCoolType = {
      augmentedFunction: () => void
    }
}
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,编译器会发出信号,表明和中存在重复标识符“MyCoolType”错误。在我必须增强接口但似乎不适用于类型的其他情况下,此解决方案适用于我。index.d.tsmy-cool-type-augmentation.d.ts