utility types
This crate use proc-macro to realize several utility types of Typescript in Rust.
| macro | Typescript Utility Type |
|---|---|
| [Partial] | Partial<Type> |
| [Pick] | Pick<Type, Keys> |
| [Omit] | Omit<Type, Keys> |
| [Extract] | Extract<Type, Union> |
| [Exclude] | Exclude<UnionType, ExcludedMembers> |
Example
Here is an example of how to use this crate.
use ;
The above code will generate the following code.
Some useful traits are also generated:
From<Foo>forPartialFoo,PickAB,OmitCDFrom<PartialFoo>forFoo
Known Issue
Currently I don't analyze which generic is used in the generated struct or enum. So rustc will complain if the field with generic is not included in the generated struct or enum.