Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Module 为现有模块创建d.ts文件_Module_Typescript - Fatal编程技术网

Module 为现有模块创建d.ts文件

Module 为现有模块创建d.ts文件,module,typescript,Module,Typescript,我正在尝试为库创建一个d.ts文件 NPM中安装的库如下所示: var React = require('react'); var StaticContainer = (function (_React$Component) { function StaticContainer() { // ... } // ... return StaticContainer; })(React.Component); module.exports = StaticConta

我正在尝试为库创建一个
d.ts
文件

NPM中安装的库如下所示:

var React = require('react');

var StaticContainer = (function (_React$Component) {

  function StaticContainer() {
    // ...
  }

  // ...

  return StaticContainer;
})(React.Component);

module.exports = StaticContainer;
var StaticContainer = require('react-static-container');
示例用法如下所示:

var React = require('react');

var StaticContainer = (function (_React$Component) {

  function StaticContainer() {
    // ...
  }

  // ...

  return StaticContainer;
})(React.Component);

module.exports = StaticContainer;
var StaticContainer = require('react-static-container');
我不知道如何为它创建一个声明并在TypeScript中使用它。根据我的研究,我得出了以下结论:

import * as StaticContainer from 'react-static-container'
这个
d.ts
文件:

interface StaticContainer extends React.Component<any, any> {
  shouldUpdate?:boolean;
}

declare module "react-static-container" {
  export = StaticContainer;
}
接口StaticContainer扩展React.Component{
shouldUpdate?:布尔值;
}
声明模块“react static container”{
导出=静态容器;
}
但是TSC给了我这个错误:

错误:(3,34)TS2497:模块“react static container”解析为非模块实体,无法使用此构造导入

我很困惑
module.exports=StaticContainer
应该如何转换为
d.ts
文件。这是怎么做到的

模块“react static container”解析为非模块实体,无法使用此构造导入

这正是错误所说的。您需要使用
import require
导入
export=
样式库。这是因为ES6规范

import StaticContainer =  require('react-state-container');

我相信它的意思是,大多数错误消息都是这样;)但我没有上下文来理解它。。。不幸的是,“这是因为ES6规范”并没有进一步加深我的理解。你能详细说明一下吗?您发布的代码无效,现在我得到了
TS2304:找不到名称“StaticContainer”。
我猜我的
d.ts
没有正确反映原始库的导出方式。@Aaron得到了完全相同的问题。之前必须定义与变量相同的名称。例如,在本例中,
let StaticContainer:any
。不确定为什么会发生这种情况。ES6规范允许您导出单个项目。导出对象不可静态分析,也不受支持。