YunYouJun / valaxy

🌌 Next Generation Static Blog Framework (Beta) 下一代静态博客框架(支持页面/配置热重载)
https://valaxy.site
MIT License
724 stars 87 forks source link

frontmatter 的 ts 类型 #445

Closed yixiaojiu closed 1 month ago

yixiaojiu commented 2 months ago

Clear and concise description of the problem

addon 可能会有自己的 frontmatter 字段,在 addon 中访问 frontmatter 得不到想要的 ts 类型,比如:https://github.com/YunYouJun/valaxy/blob/7f147989b162ce726dc0d22204265d60516799cb/packages/valaxy-addon-meting/client/index.ts#L44

如果 aplayer 不是在 valaxy 中定义的类型,那么这里将获取不到 ts 类型。

Suggested solution

使用 useFrontmatter 访问 frontmatter ,可以给 useFrontmatter 加个泛型参数。通过 route.meta.frontmatter 访问 frontmatter ,没有想到什么好的办法

Alternative

No response

Additional context

No response

Validations

YunYouJun commented 1 month ago

可以通过 declare module 设置 Post 类型进行扩展,之前我好像有试过来着。

YunYouJun commented 1 month ago

不过如果想要在 addon 中进行扩展,这个类型是独属于 addon 的。那就给 useFrontmatter 添加一个允许传入自定义泛型的方法吧。