首页 > 解决方案 > 描述 d.ts 文件用于修补的第 3 方库

问题描述

伙计们,需要 TS 专家的帮助

有一个 js 库让我们说 @extended/react 用一些额外的组件修补原始反应

问题是我们如何为这个猴子补丁的第 3 方描述一个 TS 声明这是该库的 index.js

const React = require('react');
const reactDom = require('react-dom');
const ExtendedComponent = require('./ExtendedComponent');
React.ExtendedComponent = ExtendedComponent;
React.ReactDom = reactDom;

// Exporting patched React.js from module:
module.exports = React;

我已经尝试过命名空间合并、模块扩充、从 jsdoc 生成它、在 TS 中实现补丁并从中生成,到目前为止还没有运气

最终目标是在 TS 模块中的某个地方能够做这样的事情

import React, { useState } from '@extended/react';

export const Component: React.FC = () => {
    // default import from patched module
    const [defaultImport] = React.useState(true);

    // named import from original reac module
    const [namedImport] = useState(true);

    return (
        <div>Negocios son los negocios</div>
    );
};

// default import with added react dom
React.ReactDom.render(<Component />, document.body);

// default import with added new component
class C extends React.ExtendedComponent {

}

也许有人知道如何正确地做到这一点?

标签: typescripttypescript-typings

解决方案


推荐阅读