从模块导入 "private" TypeScript 声明但未公开它 package.json

Importing "private" TypeScript declaration from module not exposing it though package.json

当导入一个 npm 模块的组件时,它的 package.json 没有像这样公开

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

如何正确link声明和防止

TS7016: Could not find a declaration file for module '@atlaskit/editor-core/dist/esm/ui/Toolbar'. '.../node_modules/@atlaskit/editor-core/dist/esm/ui/Toolbar/index.js' implicitly has an 'any' type.

因为包有声明文件,连接深度导入以使用其类型相当容易。

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