【问题标题】:Importing "private" TypeScript declaration from module not exposing it though package.json从模块导入“私有”TypeScript 声明而不通过 package.json 公开它
【发布时间】:2021-06-04 14:33:07
【问题描述】:

当导入一个没有被它的 package.json 暴露的 npm 模块的组件时

import {Toolbar} from "@atlaskit/editor-core/dist/esm/ui/Toolbar";

tsc / webpack 找不到正确的声明文件。

来源和类型可在以下位置获得:

node_modules/@atlaskit/editor-core/dist/esm/ui/Toolbar/Toolbar.js
node_modules/@atlaskit/editor-core/dist/types/ui/Toolbar/Toolbar.d.ts

如何正确链接声明并防止

TS7016:找不到模块“@atlaskit/editor-core/dist/esm/ui/Toolbar”的声明文件。 '.../node_modules/@atlaskit/editor-core/dist/esm/ui/Toolbar/index.js' 隐含了一个 'any' 类型。

【问题讨论】:

    标签: typescript webpack node-modules


    【解决方案1】:

    因为包有声明文件,所以很容易连接深度导入以使用它的类型。

    typings.d.ts 声明文件添加到您的项目以添加环境模块声明:

    // assert that an import module of this path HAS types
    declare module '@atlaskit/editor-core/dist/esm/ui/Toolbar' {
      // assert that this module contains all exports of the existing declaration file
      export * from '@atlaskit/editor-core/dist/types/ui/Toolbar';
    }
    

    Relevant Stackblitz

    【讨论】:

    • 太棒了!我很接近,但我想我永远不会想到这一点!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    • 2016-12-06
    • 2019-02-21
    • 2013-04-12
    • 2015-08-11
    相关资源
    最近更新 更多