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规范允许您导出单个项目。导出对象不可静态分析,也不受支持。