untyped
▶q检查在线操场
安装
untyped
# pnpm
pnpm install untyped
# bun
bun install untyped
# deno
deno install untyped \”>
# Auto-detect npx nypm install untyped # npm npm install untyped # yarn yarn add untyped # pnpm pnpm install untyped # bun bun install untyped # deno deno install untyped
用法
首先,我们必须定义一个描述类型,默认值和$resolve方法(normalizer)的参考对象。
const defaultPlanet = { name : \"earth\" , specs : { gravity : { $resolve : ( val ) => Number . parseFloat ( val ) , $default : \"9.8\" , } , moons : { $resolve : ( val = [ \"moon\" ] ) => [ val ] . flat ( ) , $schema : { title : \"planet moons\" , } , } , } , } ;
API
resolveSchema
untyped";
const schema = await resolveSchema(defaultPlanet);\”>
import { resolveSchema } from \" untyped \" ; const schema = await resolveSchema ( defaultPlanet ) ;
输出:
{
\"properties\" : {
\"name\" : {
\"type\" : \" string \" ,
\"default\" : \" earth \"
},
\"specs\" : {
\"properties\" : {
\"gravity\" : {
\"default\" : 9.8 ,
\"type\" : \" number \"
},
\"moons\" : {
\"title\" : \" planet moons \" ,
\"default\" : [ \" moon \" ],
\"type\" : \" array \" ,
\"items\" : [
{
\"type\" : \" string \"
}
]
}
},
\"type\" : \" object \"
}
},
\"type\" : \" object \"
}
generateTypes
untyped";
const types = generateTypes(await resolveSchema(defaultPlanet));\”>
import { resolveSchema , generateTypes } from \" untyped \" ; const types = generateTypes ( await resolveSchema ( defaultPlanet ) ) ;
输出:
untyped {
/** @default "earth" */
name: string;
specs: {
/** @default 9.8 */
gravity: number;
/**
* planet moons
* @default ["moon"]
*/
moons: string[];
};
}\”>
interface untyped { /** @default \"earth\" */ name : string ; specs : { /** @default 9.8 */ gravity : number ; /** * planet moons * @default [\"moon\"] */ moons : string [ ] ; } ; }
generateMarkdown
untyped";
const markdown = generateMarkdown(await resolveSchema(defaultPlanet));\”>
import { resolveSchema , generateMarkdown } from \" untyped \" ; const markdown = generateMarkdown ( await resolveSchema ( defaultPlanet ) ) ;
输出:
# ` name ` - ** Type ** : ` string ` - ** Default ** : ` \"earth\" ` # ` specs ` ## ` gravity ` - ** Type ** : ` number ` - ** Default ** : ` 9.8 ` ## ` moons ` - ** Type ** : ` array ` - ** Default ** : ` [\"moon\"] `
发展
- 克隆这个存储库
- 使用
corepack enableCorePack(使用npm i -g corepackfor Node.js <16.10) - 使用
pnpm install - 使用
pnpm dev运行交互式测试 - 使用
pnpm web启动操场网站 - 推送前使用
pnpm test以确保所有测试和棉绒检查通过
执照
麻省理工学院
感谢@dominikschreiber捐赠包装名称。
