无法找到包含' react-dates'的自定义声明文件的声明文件模

时间:2017-02-10 12:42:12

标签: typescript typescript-typings

我一直试图为' react-dates'写一个自定义声明文件。 npm模块,但无法让编译器将我的声明文件解析为该模块。

当我import {DateRangePicker} from 'react-dates'时,我收到以下错误:

  

无法找到模块' react-dates'的声明文件。   ' absolute_path / SRC / node_modules /反应-日期/ index.js'   隐含地有一个“任何”的类型。

我的声明文件位于路径' @ types / react-dates / index.d.ts'看起来像这样:

import * as React from 'react';
declare class DateRangePicker extends React.Component<{}, {}> { }

tsconfig.json看起来像这样:

{
  "compilerOptions": {
    "outDir": "./dist/",
    "sourceMap": true,
    "noImplicitAny": true,
    "strictNullChecks": true,
    "module": "commonjs",
    "target": "es6",
    "jsx": "react",
    "typeRoots": [
      "./@types"
    ]
  },
  "include": [
    "./app/**/*",
    "./@types/**/*"
  ]
}

1 个答案:

答案 0 :(得分:3)

通过将它包装在这样的模块语句中来解决它:

declare module 'react-dates' {
  import { Component } from 'react';
  export class DateRangePicker extends Component<{}, {}> { }
}

请注意,import语句必须位于模块块内,否则返回:

  

扩充中的模块名称无效。模块&#39; react-dates&#39;解析为&path; / path_modules / react-dates / index.js&#39;中的无类型模块,无法扩充。