diff --git a/.changeset/thin-trains-complain.md b/.changeset/thin-trains-complain.md new file mode 100644 index 000000000..f7477f21a --- /dev/null +++ b/.changeset/thin-trains-complain.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Consistent Markdown frontmatter typing (`MarkdownAstroData["frontmatter"]` in particular was `object` before) diff --git a/packages/astro/src/@types/astro.ts b/packages/astro/src/@types/astro.ts index bf91d6e4d..d24b194c8 100644 --- a/packages/astro/src/@types/astro.ts +++ b/packages/astro/src/@types/astro.ts @@ -1005,6 +1005,8 @@ export interface MarkdownInstance> { default: AstroComponentFactory; } +type MD = MarkdownInstance>; + export interface MDXInstance> extends Omit, 'rawContent' | 'compiledContent'> { /** MDX does not support rawContent! If you need to read the Markdown contents to calculate values (ex. reading time), we suggest injecting frontmatter via remark plugins. Learn more on our docs: https://docs.astro.build/en/guides/integrations-guide/mdx/#inject-frontmatter-via-remark-or-rehype-plugins */ @@ -1083,9 +1085,7 @@ export interface ManifestData { } export interface MarkdownParserResponse extends MarkdownRenderingResult { - frontmatter: { - [key: string]: any; - }; + frontmatter: MD['frontmatter']; } /** @@ -1410,7 +1410,9 @@ export interface SSRResult { _metadata: SSRMetadata; } -export type MarkdownAstroData = { frontmatter: object }; +export type MarkdownAstroData = { + frontmatter: MD['frontmatter']; +}; /* Preview server stuff */ export interface PreviewServer {