我正在尝试为uuidv4模块提供TypeScript模块声明。它基本上导出一个不带参数的函数,并以字符串形式返回UUID。这很容易实现,如下所示:

declare module 'uuidv4' {
  const uuidv4: () => string;
  export default uuidv4;
}


现在,它变得有些棘手,因为在导出的函数上还有另一个函数,称为empty。因此,您可以像这样使用它:

import uuid from 'uuidv4';

console.log(uuid());
console.log(uuid.empty());


如何在模块声明中设置第二个?我尝试了这个:

declare module 'uuidv4' {
  const uuidv4: () => string;
  uuidv4.empty: () => string;
  export default uuidv4;
}


但这是行不通的,因为TypeScript抱怨


  类型“()=>字符串”上不存在属性“空”。


我该如何解决?

最佳答案

知道了实际上,一旦您知道如何做,就很容易了:

declare module 'uuidv4' {
  const uuidv4: {(): string; empty (): string};
  export default uuidv4;
}


就是这样😊

10-06 15:06