update readme
This commit is contained in:
parent
2473cee198
commit
c19b73ea6d
@ -70,7 +70,7 @@ export const app = {
|
|||||||
),
|
),
|
||||||
sample: z.function(
|
sample: z.function(
|
||||||
z.tuple([z.character_vector(), z.integer()]),
|
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:
|
which will generate the following types:
|
||||||
```typescript
|
```typescript
|
||||||
type App = {
|
type App = {
|
||||||
add: (x: number, y: number) => Promise<number>;
|
add: (x: number, y: number) => Promise<{ data: number }>;
|
||||||
sample: (x: string[], n: number) => Promise<string | string[]>;
|
sample: (x: string[], n: number) => Promise<{ data: string | string[] }>;
|
||||||
// or, if possible, even better:
|
// 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-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-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-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-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>
|
<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>
|
<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>
|
<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-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><span class="dt">string</span> <span class="op">|</span> <span class="dt">string</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-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-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="op">;</span></span></code></pre></div>
|
<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>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@ -64,7 +64,7 @@ export const app = {
|
|||||||
),
|
),
|
||||||
sample: z.function(
|
sample: z.function(
|
||||||
z.tuple([z.character_vector(), z.integer()]),
|
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
|
``` typescript
|
||||||
type App = {
|
type App = {
|
||||||
add: (x: number, y: number) => Promise<number>;
|
add: (x: number, y: number) => Promise<{ data: number }>;
|
||||||
sample: (x: string[], n: number) => Promise<string | string[]>;
|
sample: (x: string[], n: number) => Promise<{ data: string | string[] }>;
|
||||||
// or, if possible, even better:
|
// 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