pub enum TypeAnnotation {
Show 16 variants
Identifier(String),
Predefined(String),
Literal(LiteralType),
Array(Box<TypeAnnotation>),
Tuple(Vec<TypeAnnotation>),
Union(Vec<TypeAnnotation>),
Intersection(Vec<TypeAnnotation>),
Reference {
name: String,
args: Vec<TypeAnnotation>,
},
Function {
type_params: Vec<TypeParameter>,
args: Vec<FunctionParam>,
return_type: Box<TypeAnnotation>,
},
Object(Vec<ClassMember>),
Query(String),
KeyOf(Box<TypeAnnotation>),
Conditional {
check_type: Box<TypeAnnotation>,
extends_type: Box<TypeAnnotation>,
true_type: Box<TypeAnnotation>,
false_type: Box<TypeAnnotation>,
},
Mapped {
key_name: String,
key_type: Box<TypeAnnotation>,
value_type: Box<TypeAnnotation>,
readonly: Option<bool>,
optional: Option<bool>,
},
TemplateLiteral(Vec<TemplateElement>),
Infer(String),
}Expand description
Represents a TypeScript type annotation.
Variants§
Identifier(String)
An identifier type.
Predefined(String)
A predefined type (e.g., any, number, string, boolean, void, never).
Literal(LiteralType)
A literal type.
Array(Box<TypeAnnotation>)
An array type.
Tuple(Vec<TypeAnnotation>)
A tuple type.
Union(Vec<TypeAnnotation>)
A union type.
Intersection(Vec<TypeAnnotation>)
An intersection type.
Reference
A type reference with optional type arguments.
Function
A function type.
Fields
§
type_params: Vec<TypeParameter>Type parameters of the function type.
§
args: Vec<FunctionParam>Parameters of the function type.
§
return_type: Box<TypeAnnotation>Return type of the function type.
Object(Vec<ClassMember>)
An object type (interface-like).
Query(String)
A type query (typeof X).
KeyOf(Box<TypeAnnotation>)
A keyof type.
Conditional
A conditional type (T extends U ? X : Y).
Fields
§
check_type: Box<TypeAnnotation>Type being checked.
§
extends_type: Box<TypeAnnotation>Type to extend.
§
true_type: Box<TypeAnnotation>Type if the condition is true.
§
false_type: Box<TypeAnnotation>Type if the condition is false.
Mapped
A mapped type ({ [K in T]: U }).
Fields
§
key_type: Box<TypeAnnotation>Type of the key variable.
§
value_type: Box<TypeAnnotation>Type of the value.
TemplateLiteral(Vec<TemplateElement>)
A template literal type.
Infer(String)
An infer type.
Trait Implementations§
Source§impl Clone for TypeAnnotation
impl Clone for TypeAnnotation
Source§fn clone(&self) -> TypeAnnotation
fn clone(&self) -> TypeAnnotation
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TypeAnnotation
impl Debug for TypeAnnotation
Source§impl<'de> Deserialize<'de> for TypeAnnotation
impl<'de> Deserialize<'de> for TypeAnnotation
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for TypeAnnotation
impl RefUnwindSafe for TypeAnnotation
impl Send for TypeAnnotation
impl Sync for TypeAnnotation
impl Unpin for TypeAnnotation
impl UnsafeUnpin for TypeAnnotation
impl UnwindSafe for TypeAnnotation
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more