typescript 是否可以使用静态站点生成器(如VitePress)渲染Markdown文件中的TS类型或变量值?

0aydgbwb  于 2023-04-13  发布在  TypeScript
关注(0)|答案(1)|浏览(116)

bounty还有7天到期。回答此问题可获得+50声望奖励。baitendbidz正在寻找规范答案

我想使用Vitepress(或类似)创建文档。此应用程序使用包含类型和Zod模式的包。根库index.ts可以是

import { z } from 'zod';

const userSchema = z
  .object({
    username: z.string().min(1),
  })
  .strict();

type User = z.infer<typeof userSchema>;

export { userSchema, type User }

有没有一种方法可以在markdown文件中呈现模式或类型?

  • 也许在Vue文件(VitePress)的帮助下 *

我只想描述模式或类型,但不想复制粘贴所有字段,因为这样我就必须注意所有内容都是同步的。

nkoocmlb

nkoocmlb1#

1.使用https://www.npmjs.com/package/zod-to-ts将模式转换为运行时类型脚本-lang字符串
1.使用ts-vue Code Blocks渲染它

<script setup lang="ts">
import { printNode, zodToTs } from 'zod-to-ts'
import { UserSchema } from './schemas'

const identifier = 'User'
const { node } = zodToTs(UserSchema, identifier)
const nodeString = printNode(node)
</script>

```ts-vue
// {{ identifier }} Schema
{{ nodeString }}

相关问题