Enum ezno_parser::types::type_annotations::TypeAnnotation
source · pub enum TypeAnnotation {
Show 22 variants
Name(String, Span),
CommonName(CommonTypes, Span),
NamespacedName(String, String, Span),
NameWithGenericArguments(String, Vec<TypeAnnotation>, Span),
Union(Vec<TypeAnnotation>, Span),
Intersection(Vec<TypeAnnotation>, Span),
StringLiteral(String, Quoted, Span),
NumberLiteral(NumberRepresentation, Span),
BooleanLiteral(bool, Span),
ArrayLiteral(Box<TypeAnnotation>, Span),
FunctionLiteral {
type_parameters: Option<Vec<GenericTypeConstraint>>,
parameters: TypeAnnotationFunctionParameters,
return_type: Box<TypeAnnotation>,
position: Span,
},
ConstructorLiteral {
new_keyword: Keyword<New>,
type_parameters: Option<Vec<GenericTypeConstraint>>,
parameters: TypeAnnotationFunctionParameters,
return_type: Box<TypeAnnotation>,
position: Span,
},
ObjectLiteral(Vec<WithComment<Decorated<InterfaceMember>>>, Span),
TupleLiteral(Vec<(SpreadKind, AnnotationWithBinder)>, Span),
TemplateLiteral(Vec<TemplateLiteralPart<AnnotationWithBinder>>, Span),
Readonly(Box<TypeAnnotation>, Span),
Index(Box<TypeAnnotation>, Box<TypeAnnotation>, Span),
KeyOf(Box<TypeAnnotation>, Span),
ParenthesizedReference(Box<TypeAnnotation>, Span),
Conditional {
condition: TypeCondition,
resolve_true: TypeConditionResult,
resolve_false: TypeConditionResult,
position: Span,
},
Decorated(Decorator, Box<Self>, Span),
Cursor(CursorId<TypeAnnotation>, Span),
}Expand description
A reference to a type
Variants§
Name(String, Span)
A name e.g. IPost
CommonName(CommonTypes, Span)
NamespacedName(String, String, Span)
A name e.g. Intl.IPost. TODO can there be more than 2 members
NameWithGenericArguments(String, Vec<TypeAnnotation>, Span)
A name with generics e.g. Array<number>
Union(Vec<TypeAnnotation>, Span)
Union e.g. number | string
Intersection(Vec<TypeAnnotation>, Span)
Intersection e.g. c & d
StringLiteral(String, Quoted, Span)
String literal e.g. "foo"
NumberLiteral(NumberRepresentation, Span)
Number literal e.g. 45
BooleanLiteral(bool, Span)
Boolean literal e.g. true
ArrayLiteral(Box<TypeAnnotation>, Span)
Array literal e.g. string[]. This is syntactic sugar for Array with type arguments. This is not the same
as a TypeAnnotation::TupleLiteral
FunctionLiteral
Fields
§
type_parameters: Option<Vec<GenericTypeConstraint>>§
parameters: TypeAnnotationFunctionParameters§
return_type: Box<TypeAnnotation>Function literal e.g. (x: string) => string
ConstructorLiteral
Fields
§
type_parameters: Option<Vec<GenericTypeConstraint>>§
parameters: TypeAnnotationFunctionParameters§
return_type: Box<TypeAnnotation>Construction literal e.g. new (x: string) => string
ObjectLiteral(Vec<WithComment<Decorated<InterfaceMember>>>, Span)
Object literal e.g. { y: string }
TupleLiteral(Vec<(SpreadKind, AnnotationWithBinder)>, Span)
Tuple literal e.g. [number, x: string]
TemplateLiteral(Vec<TemplateLiteralPart<AnnotationWithBinder>>, Span)
?
Readonly(Box<TypeAnnotation>, Span)
Declares type as not assignable (still has interior mutability) e.g. readonly number
Index(Box<TypeAnnotation>, Box<TypeAnnotation>, Span)
Declares type as being union type of all property types e.g. T[K]
KeyOf(Box<TypeAnnotation>, Span)
KeyOf
ParenthesizedReference(Box<TypeAnnotation>, Span)
For operation precedence reasons
Conditional
Fields
§
condition: TypeCondition§
resolve_true: TypeConditionResult§
resolve_false: TypeConditionResultDecorated(Decorator, Box<Self>, Span)
Cursor(CursorId<TypeAnnotation>, Span)
Trait Implementations§
source§impl ASTNode for TypeAnnotation
impl ASTNode for TypeAnnotation
fn from_reader( reader: &mut impl TokenReader<TSXToken, TokenStart>, state: &mut ParsingState, options: &ParseOptions ) -> ParseResult<Self>
fn to_string_from_buffer<T: ToString>( &self, buf: &mut T, options: &ToStringOptions, depth: u8 )
source§fn get_position(&self) -> &Span
fn get_position(&self) -> &Span
Returns position of node as span AS IT WAS PARSED. May be
Span::NULL if AST was doesn’t match anything in sourcesource§fn from_string(
script: String,
options: ParseOptions,
source: SourceId,
offset: Option<u32>
) -> ParseResult<Self>
fn from_string( script: String, options: ParseOptions, source: SourceId, offset: Option<u32> ) -> ParseResult<Self>
From string, with default impl to call abstract method
from_readersource§fn to_string(&self, options: &ToStringOptions) -> String
fn to_string(&self, options: &ToStringOptions) -> String
Returns structure as valid string
source§impl Clone for TypeAnnotation
impl Clone for TypeAnnotation
source§fn clone(&self) -> TypeAnnotation
fn clone(&self) -> TypeAnnotation
Returns a copy 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 GetFieldByType<BaseSpan<()>> for TypeAnnotation
impl GetFieldByType<BaseSpan<()>> for TypeAnnotation
source§impl PartialEq for TypeAnnotation
impl PartialEq for TypeAnnotation
source§impl SelfRustTokenize for TypeAnnotation
impl SelfRustTokenize for TypeAnnotation
fn append_to_token_stream(&self, token_stream: &mut TokenStream)
source§fn to_tokens(&self) -> TokenStream
fn to_tokens(&self) -> TokenStream
Returns the tokens used to construct self
source§impl Serialize for TypeAnnotation
impl Serialize for TypeAnnotation
source§impl Visitable for TypeAnnotation
impl Visitable for TypeAnnotation
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain> )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain> )
impl Eq for TypeAnnotation
impl StructuralEq for TypeAnnotation
Auto Trait Implementations§
impl RefUnwindSafe for TypeAnnotation
impl Send for TypeAnnotation
impl Sync for TypeAnnotation
impl Unpin 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