Typescript 非类型文件上的模块扩充/定义类型

Typescript 非类型文件上的模块扩充/定义类型,typescript,Typescript,我需要为当前项目定义以下类型: import toISOMonthString from 'react-dates/esm/utils/toISOMonthString'; declare module 'react-dates/esm/utils/toISOMonthString' { import { MomentInput } from 'moment'; export default function(date: MomentInput): string; } 问题是,我试

我需要为当前项目定义以下类型:

import toISOMonthString from 'react-dates/esm/utils/toISOMonthString';
declare module 'react-dates/esm/utils/toISOMonthString' {
  import { MomentInput } from 'moment';

  export default function(date: MomentInput): string;
}
问题是,我试过基本的:

declare module "react-dates/esm/utils/toISOMonthString'" {}
但我有一个错误:

[ts] Invalid module name in augmentation. Module 'react-dates/esm/utils/toISOMonthString' resolves to an untyped module at '.../node_modules/react-dates/esm/utils/toISOMonthString.js', which cannot be augmented.
为了解决这个问题而进行公关应该很容易,但我现在需要在本地解决它


您知道如何键入此非类型化文件吗?

您的
声明模块“react dates/esm/utils/toISOMonthString”{}
被视为模块扩充,因为它出现在另一个模块中(具有顶级ES6导入或导出的文件)。将声明移动到单独的文件中,以便将其视为模块的原始声明。(这方面的文档记录得很差;您可以多读一点。)

您的
声明模块“react dates/esm/utils/toISOMonthString”{}
被视为模块扩展,因为它出现在另一个模块中(具有顶级ES6导入或导出的文件)。将声明移动到单独的文件中,以便将其视为模块的原始声明。(这方面的文档记录很差;您可以多读一点。)

一种可能的方法是创建一个
.d.ts
文件,其中包含以下内容:

import toISOMonthString from 'react-dates/esm/utils/toISOMonthString';
declare module 'react-dates/esm/utils/toISOMonthString' {
  import { MomentInput } from 'moment';

  export default function(date: MomentInput): string;
}

一种可能的方法是创建一个包含以下内容的
.d.ts
文件:

import toISOMonthString from 'react-dates/esm/utils/toISOMonthString';
declare module 'react-dates/esm/utils/toISOMonthString' {
  import { MomentInput } from 'moment';

  export default function(date: MomentInput): string;
}

事实上,我找到了一个解决方案,我可以分享。首先,我将声明移动到另一个文件
.d.ts
,然后检查我是否可以在另一个家伙的帮助下解决这个问题。我实际上找到了一个解决方案,我可以分享。首先,我将声明移动到另一个文件
.d.ts
,然后检查是否可以在另一个人的帮助下解决问题