【发布时间】:2021-12-26 17:17:15
【问题描述】:
我正在尝试通过 Parceljs 发布一个使用 typescript module augmentation 的库,但它似乎没有捆绑这些模块增强。我无法在项目中使用导入 Parcel 生成的库的属性。
{
"name": "my-library",
"version": "1.0.0",
"source": "src/index.js",
"main": "dist/main.js",
"module": "dist/module.js",
"types": "dist/types.d.ts",
"devDependencies": {
"parcel": "latest"
}
}
我尝试使用 Parcel 和 Typescript 增强的示例。
import { Components, createTheme, PaletteOptions } from '@mui/material/styles';
declare module '@mui/material/styles' {
interface Palette {
ternary: Palette['primary'];
quaternary: Palette['primary'];
gridColor: string;
logoColor: string;
}
interface PaletteOptions {
ternary?: PaletteOptions['primary'];
quaternary?: PaletteOptions['primary'];
gridColor?: string;
logoColor?: string;
}
}
export const defaultTheme = createTheme();
来自使用 Parcel 构建的库的导出的 defaultTheme 不会附带我在此处定义的其他属性。我希望它们可用。
【问题讨论】:
-
您能否提供库包的简化复制品以及您如何使用它?同时有两个想法:(1)打字稿文档中显示模块扩充如何工作的示例似乎表明扩充的使用者将从两个 separate 文件中导入,这与以下想法背道而驰将您的库代码捆绑到一个文件中(例如整个包裹点)。 (2) 您的 package.json 缺少
types字段 - 没有它,包裹根本不会生成任何.d.ts文件 - 请参阅 docs -
我编辑了我的问题,类型字段已定义我只是在最初的消息中忘记了它
标签: reactjs typescript parceljs