update readme
This commit is contained in:
parent
2473cee198
commit
c19b73ea6d
@ -70,7 +70,7 @@ export const app = {
|
||||
),
|
||||
sample: z.function(
|
||||
z.tuple([z.character_vector(), z.integer()]),
|
||||
z.promise(z.union([z.character(), z.character_vector()]))
|
||||
z.promise(R.character())
|
||||
)
|
||||
};
|
||||
```
|
||||
@ -78,9 +78,10 @@ export const app = {
|
||||
which will generate the following types:
|
||||
```typescript
|
||||
type App = {
|
||||
add: (x: number, y: number) => Promise<number>;
|
||||
sample: (x: string[], n: number) => Promise<string | string[]>;
|
||||
add: (x: number, y: number) => Promise<{ data: number }>;
|
||||
sample: (x: string[], n: number) => Promise<{ data: string | string[] }>;
|
||||
// or, if possible, even better:
|
||||
sample: <N extends number>(x: string[], n: N) => Promise<N extends 1 ? string : string[]>;
|
||||
sample: <N extends number>(x: string[], n: N) =>
|
||||
Promise<{ data: N extends 1 ? string : string[] }>;
|
||||
};
|
||||
```
|
||||
|
||||
11
README.html
11
README.html
@ -647,16 +647,17 @@ body {
|
||||
<span id="cb3-7"><a href="#cb3-7" aria-hidden="true"></a> )<span class="op">,</span></span>
|
||||
<span id="cb3-8"><a href="#cb3-8" aria-hidden="true"></a> sample<span class="op">:</span> z<span class="op">.</span><span class="fu">function</span>(</span>
|
||||
<span id="cb3-9"><a href="#cb3-9" aria-hidden="true"></a> z<span class="op">.</span><span class="fu">tuple</span>([z<span class="op">.</span><span class="fu">character_vector</span>()<span class="op">,</span> z<span class="op">.</span><span class="fu">integer</span>()])<span class="op">,</span></span>
|
||||
<span id="cb3-10"><a href="#cb3-10" aria-hidden="true"></a> z<span class="op">.</span><span class="fu">promise</span>(z<span class="op">.</span><span class="fu">union</span>([z<span class="op">.</span><span class="fu">character</span>()<span class="op">,</span> z<span class="op">.</span><span class="fu">character_vector</span>()]))</span>
|
||||
<span id="cb3-10"><a href="#cb3-10" aria-hidden="true"></a> z<span class="op">.</span><span class="fu">promise</span>(R<span class="op">.</span><span class="fu">character</span>())</span>
|
||||
<span id="cb3-11"><a href="#cb3-11" aria-hidden="true"></a> )</span>
|
||||
<span id="cb3-12"><a href="#cb3-12" aria-hidden="true"></a>}<span class="op">;</span></span></code></pre></div>
|
||||
<p>which will generate the following types:</p>
|
||||
<div class="sourceCode" id="cb4"><pre class="sourceCode typescript"><code class="sourceCode typescript"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true"></a><span class="kw">type</span> App <span class="op">=</span> {</span>
|
||||
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true"></a> add<span class="op">:</span> (x<span class="op">:</span> <span class="dt">number</span><span class="op">,</span> y<span class="op">:</span> <span class="dt">number</span>) <span class="kw">=></span> <span class="bu">Promise</span><span class="op"><</span><span class="dt">number</span><span class="op">>;</span></span>
|
||||
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true"></a> sample<span class="op">:</span> (x<span class="op">:</span> <span class="dt">string</span>[]<span class="op">,</span> n<span class="op">:</span> <span class="dt">number</span>) <span class="kw">=></span> <span class="bu">Promise</span><span class="op"><</span><span class="dt">string</span> <span class="op">|</span> <span class="dt">string</span>[]<span class="op">>;</span></span>
|
||||
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true"></a> add<span class="op">:</span> (x<span class="op">:</span> <span class="dt">number</span><span class="op">,</span> y<span class="op">:</span> <span class="dt">number</span>) <span class="kw">=></span> <span class="bu">Promise</span><span class="op"><</span>{ data<span class="op">:</span> <span class="dt">number</span> }<span class="op">>;</span></span>
|
||||
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true"></a> sample<span class="op">:</span> (x<span class="op">:</span> <span class="dt">string</span>[]<span class="op">,</span> n<span class="op">:</span> <span class="dt">number</span>) <span class="kw">=></span> <span class="bu">Promise</span><span class="op"><</span>{ data<span class="op">:</span> <span class="dt">string</span> <span class="op">|</span> <span class="dt">string</span>[] }<span class="op">>;</span></span>
|
||||
<span id="cb4-4"><a href="#cb4-4" aria-hidden="true"></a> <span class="co">// or, if possible, even better:</span></span>
|
||||
<span id="cb4-5"><a href="#cb4-5" aria-hidden="true"></a> sample<span class="op">:</span> <span class="op"><</span>N extends <span class="dt">number</span><span class="op">></span>(x<span class="op">:</span> <span class="dt">string</span>[]<span class="op">,</span> n<span class="op">:</span> N) <span class="kw">=></span> <span class="bu">Promise</span><span class="op"><</span>N extends <span class="dv">1</span> <span class="op">?</span> <span class="dt">string</span> <span class="op">:</span> <span class="dt">string</span>[]<span class="op">>;</span></span>
|
||||
<span id="cb4-6"><a href="#cb4-6" aria-hidden="true"></a>}<span class="op">;</span></span></code></pre></div>
|
||||
<span id="cb4-5"><a href="#cb4-5" aria-hidden="true"></a> sample<span class="op">:</span> <span class="op"><</span>N extends <span class="dt">number</span><span class="op">></span>(x<span class="op">:</span> <span class="dt">string</span>[]<span class="op">,</span> n<span class="op">:</span> N) <span class="kw">=></span></span>
|
||||
<span id="cb4-6"><a href="#cb4-6" aria-hidden="true"></a> <span class="bu">Promise</span><span class="op"><</span>{ data<span class="op">:</span> N extends <span class="dv">1</span> <span class="op">?</span> <span class="dt">string</span> <span class="op">:</span> <span class="dt">string</span>[] }<span class="op">>;</span></span>
|
||||
<span id="cb4-7"><a href="#cb4-7" aria-hidden="true"></a>}<span class="op">;</span></span></code></pre></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -64,7 +64,7 @@ export const app = {
|
||||
),
|
||||
sample: z.function(
|
||||
z.tuple([z.character_vector(), z.integer()]),
|
||||
z.promise(z.union([z.character(), z.character_vector()]))
|
||||
z.promise(R.character())
|
||||
)
|
||||
};
|
||||
```
|
||||
@ -73,9 +73,10 @@ which will generate the following types:
|
||||
|
||||
``` typescript
|
||||
type App = {
|
||||
add: (x: number, y: number) => Promise<number>;
|
||||
sample: (x: string[], n: number) => Promise<string | string[]>;
|
||||
add: (x: number, y: number) => Promise<{ data: number }>;
|
||||
sample: (x: string[], n: number) => Promise<{ data: string | string[] }>;
|
||||
// or, if possible, even better:
|
||||
sample: <N extends number>(x: string[], n: N) => Promise<N extends 1 ? string : string[]>;
|
||||
sample: <N extends number>(x: string[], n: N) =>
|
||||
Promise<{ data: N extends 1 ? string : string[] }>;
|
||||
};
|
||||
```
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user