使用模块的默认导出作为 d.ts 中模块声明的默认导出

时间:2021-01-21 11:31:55

标签: typescript webpack module

我用 webpack 将我的资产文件夹替换为整个 React 应用程序。我希望为该替换文件提供完整的打字稿支持,据我所知,我需要在 d.ts 文件中声明一个模块来实现这一点。

我的问题在于我无法导入被 webpack 替代的文件的默认导出:

这两个都不起作用,他们将默认导出设置为任何

declare module 'pictures' {
    // `import * as` and `import` both dont work, whether its 
    // inside the declaration or outside of it.
    import * as defaultPictureExport from '../static/Pictures'; 
    export default defaultPictureExport;
}

declare module 'pictures' {
    const content : import("../static/Pictures");
    export default content;
}

“导入文件”的形状

// Khala (placeholder)
export { default as khala } from '../assets/khala.webp';

我不确定我做错了什么......

当我使用相对路径导入时,ts 知道所有导出的属性,就像它应该的一样

更新 1

这适用于默认导出,但不适用于解构......?

declare module 'pictures' {
    const content = await import('../static/Pictures');
    export default content;
}

无需解构即可工作 Not destructured

解构破坏了它 Destructuring breaks

0 个答案:

没有答案