Skip to main content

TypeAnnotation

Enum TypeAnnotation 

Source
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.

Fields

§name: String

Name of the referenced type.

§args: Vec<TypeAnnotation>

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_name: String

Name of the key variable.

§key_type: Box<TypeAnnotation>

Type of the key variable.

§value_type: Box<TypeAnnotation>

Type of the value.

§readonly: Option<bool>

Readonly modifier.

§optional: Option<bool>

Optional modifier.

§

TemplateLiteral(Vec<TemplateElement>)

A template literal type.

§

Infer(String)

An infer type.

Trait Implementations§

Source§

impl Clone for TypeAnnotation

Source§

fn clone(&self) -> TypeAnnotation

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TypeAnnotation

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for TypeAnnotation

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for TypeAnnotation

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,