JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ TsTypeAliasDeclaration { type_token: TYPE_KW@0..5 "type" [] [Whitespace(" ")], binding_identifier: TsIdentifierBinding { name_token: IDENT@5..7 "A" [] [Whitespace(" ")], }, type_parameters: missing (optional), eq_token: EQ@7..9 "=" [] [Whitespace(" ")], ty: TsObjectType { l_curly_token: L_CURLY@9..11 "{" [] [Whitespace(" ")], members: TsTypeMemberList [ TsIndexSignatureTypeMember { readonly_token: missing (optional), l_brack_token: L_BRACK@11..12 "[" [] [], parameter: TsIndexSignatureParameter { binding: JsIdentifierBinding { name_token: IDENT@12..13 "a" [] [], }, type_annotation: TsTypeAnnotation { colon_token: COLON@13..15 ":" [] [Whitespace(" ")], ty: TsNumberType { number_token: NUMBER_KW@15..21 "number" [] [], }, }, }, r_brack_token: R_BRACK@21..22 "]" [] [], type_annotation: TsTypeAnnotation { colon_token: COLON@22..24 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@24..31 "string" [] [Whitespace(" ")], }, }, separator_token: missing (optional), }, ], r_curly_token: R_CURLY@31..32 "}" [] [], }, semicolon_token: missing (optional), }, TsTypeAliasDeclaration { type_token: TYPE_KW@32..38 "type" [Newline("\n")] [Whitespace(" ")], binding_identifier: TsIdentifierBinding { name_token: IDENT@38..40 "B" [] [Whitespace(" ")], }, type_parameters: missing (optional), eq_token: EQ@40..42 "=" [] [Whitespace(" ")], ty: TsObjectType { l_curly_token: L_CURLY@42..44 "{" [] [Whitespace(" ")], members: TsTypeMemberList [ TsIndexSignatureTypeMember { readonly_token: READONLY_KW@44..53 "readonly" [] [Whitespace(" ")], l_brack_token: L_BRACK@53..54 "[" [] [], parameter: TsIndexSignatureParameter { binding: JsIdentifierBinding { name_token: IDENT@54..55 "a" [] [], }, type_annotation: TsTypeAnnotation { colon_token: COLON@55..57 ":" [] [Whitespace(" ")], ty: TsNumberType { number_token: NUMBER_KW@57..63 "number" [] [], }, }, }, r_brack_token: R_BRACK@63..64 "]" [] [], type_annotation: TsTypeAnnotation { colon_token: COLON@64..66 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@66..73 "string" [] [Whitespace(" ")], }, }, separator_token: missing (optional), }, ], r_curly_token: R_CURLY@73..74 "}" [] [], }, semicolon_token: missing (optional), }, TsTypeAliasDeclaration { type_token: TYPE_KW@74..106 "type" [Newline("\n"), Comments("// not an index signa ..."), Newline("\n")] [Whitespace(" ")], binding_identifier: TsIdentifierBinding { name_token: IDENT@106..108 "C" [] [Whitespace(" ")], }, type_parameters: missing (optional), eq_token: EQ@108..110 "=" [] [Whitespace(" ")], ty: TsObjectType { l_curly_token: L_CURLY@110..112 "{" [] [Whitespace(" ")], members: TsTypeMemberList [ TsPropertySignatureTypeMember { readonly_token: missing (optional), name: JsComputedMemberName { l_brack_token: L_BRACK@112..113 "[" [] [], expression: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@113..114 "a" [] [], }, }, r_brack_token: R_BRACK@114..115 "]" [] [], }, optional_token: missing (optional), type_annotation: TsTypeAnnotation { colon_token: COLON@115..117 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@117..124 "string" [] [Whitespace(" ")], }, }, separator_token: missing (optional), }, ], r_curly_token: R_CURLY@124..125 "}" [] [], }, semicolon_token: missing (optional), }, TsTypeAliasDeclaration { type_token: TYPE_KW@125..131 "type" [Newline("\n")] [Whitespace(" ")], binding_identifier: TsIdentifierBinding { name_token: IDENT@131..133 "D" [] [Whitespace(" ")], }, type_parameters: missing (optional), eq_token: EQ@133..135 "=" [] [Whitespace(" ")], ty: TsObjectType { l_curly_token: L_CURLY@135..137 "{" [] [Whitespace(" ")], members: TsTypeMemberList [ TsPropertySignatureTypeMember { readonly_token: READONLY_KW@137..146 "readonly" [] [Whitespace(" ")], name: JsComputedMemberName { l_brack_token: L_BRACK@146..147 "[" [] [], expression: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@147..148 "a" [] [], }, }, r_brack_token: R_BRACK@148..149 "]" [] [], }, optional_token: missing (optional), type_annotation: TsTypeAnnotation { colon_token: COLON@149..151 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@151..158 "string" [] [Whitespace(" ")], }, }, separator_token: missing (optional), }, ], r_curly_token: R_CURLY@158..159 "}" [] [], }, semicolon_token: missing (optional), }, ], eof_token: EOF@159..160 "" [Newline("\n")] [], } 0: JS_MODULE@0..160 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..159 0: TS_TYPE_ALIAS_DECLARATION@0..32 0: TYPE_KW@0..5 "type" [] [Whitespace(" ")] 1: TS_IDENTIFIER_BINDING@5..7 0: IDENT@5..7 "A" [] [Whitespace(" ")] 2: (empty) 3: EQ@7..9 "=" [] [Whitespace(" ")] 4: TS_OBJECT_TYPE@9..32 0: L_CURLY@9..11 "{" [] [Whitespace(" ")] 1: TS_TYPE_MEMBER_LIST@11..31 0: TS_INDEX_SIGNATURE_TYPE_MEMBER@11..31 0: (empty) 1: L_BRACK@11..12 "[" [] [] 2: TS_INDEX_SIGNATURE_PARAMETER@12..21 0: JS_IDENTIFIER_BINDING@12..13 0: IDENT@12..13 "a" [] [] 1: TS_TYPE_ANNOTATION@13..21 0: COLON@13..15 ":" [] [Whitespace(" ")] 1: TS_NUMBER_TYPE@15..21 0: NUMBER_KW@15..21 "number" [] [] 3: R_BRACK@21..22 "]" [] [] 4: TS_TYPE_ANNOTATION@22..31 0: COLON@22..24 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@24..31 0: STRING_KW@24..31 "string" [] [Whitespace(" ")] 5: (empty) 2: R_CURLY@31..32 "}" [] [] 5: (empty) 1: TS_TYPE_ALIAS_DECLARATION@32..74 0: TYPE_KW@32..38 "type" [Newline("\n")] [Whitespace(" ")] 1: TS_IDENTIFIER_BINDING@38..40 0: IDENT@38..40 "B" [] [Whitespace(" ")] 2: (empty) 3: EQ@40..42 "=" [] [Whitespace(" ")] 4: TS_OBJECT_TYPE@42..74 0: L_CURLY@42..44 "{" [] [Whitespace(" ")] 1: TS_TYPE_MEMBER_LIST@44..73 0: TS_INDEX_SIGNATURE_TYPE_MEMBER@44..73 0: READONLY_KW@44..53 "readonly" [] [Whitespace(" ")] 1: L_BRACK@53..54 "[" [] [] 2: TS_INDEX_SIGNATURE_PARAMETER@54..63 0: JS_IDENTIFIER_BINDING@54..55 0: IDENT@54..55 "a" [] [] 1: TS_TYPE_ANNOTATION@55..63 0: COLON@55..57 ":" [] [Whitespace(" ")] 1: TS_NUMBER_TYPE@57..63 0: NUMBER_KW@57..63 "number" [] [] 3: R_BRACK@63..64 "]" [] [] 4: TS_TYPE_ANNOTATION@64..73 0: COLON@64..66 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@66..73 0: STRING_KW@66..73 "string" [] [Whitespace(" ")] 5: (empty) 2: R_CURLY@73..74 "}" [] [] 5: (empty) 2: TS_TYPE_ALIAS_DECLARATION@74..125 0: TYPE_KW@74..106 "type" [Newline("\n"), Comments("// not an index signa ..."), Newline("\n")] [Whitespace(" ")] 1: TS_IDENTIFIER_BINDING@106..108 0: IDENT@106..108 "C" [] [Whitespace(" ")] 2: (empty) 3: EQ@108..110 "=" [] [Whitespace(" ")] 4: TS_OBJECT_TYPE@110..125 0: L_CURLY@110..112 "{" [] [Whitespace(" ")] 1: TS_TYPE_MEMBER_LIST@112..124 0: TS_PROPERTY_SIGNATURE_TYPE_MEMBER@112..124 0: (empty) 1: JS_COMPUTED_MEMBER_NAME@112..115 0: L_BRACK@112..113 "[" [] [] 1: JS_IDENTIFIER_EXPRESSION@113..114 0: JS_REFERENCE_IDENTIFIER@113..114 0: IDENT@113..114 "a" [] [] 2: R_BRACK@114..115 "]" [] [] 2: (empty) 3: TS_TYPE_ANNOTATION@115..124 0: COLON@115..117 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@117..124 0: STRING_KW@117..124 "string" [] [Whitespace(" ")] 4: (empty) 2: R_CURLY@124..125 "}" [] [] 5: (empty) 3: TS_TYPE_ALIAS_DECLARATION@125..159 0: TYPE_KW@125..131 "type" [Newline("\n")] [Whitespace(" ")] 1: TS_IDENTIFIER_BINDING@131..133 0: IDENT@131..133 "D" [] [Whitespace(" ")] 2: (empty) 3: EQ@133..135 "=" [] [Whitespace(" ")] 4: TS_OBJECT_TYPE@135..159 0: L_CURLY@135..137 "{" [] [Whitespace(" ")] 1: TS_TYPE_MEMBER_LIST@137..158 0: TS_PROPERTY_SIGNATURE_TYPE_MEMBER@137..158 0: READONLY_KW@137..146 "readonly" [] [Whitespace(" ")] 1: JS_COMPUTED_MEMBER_NAME@146..149 0: L_BRACK@146..147 "[" [] [] 1: JS_IDENTIFIER_EXPRESSION@147..148 0: JS_REFERENCE_IDENTIFIER@147..148 0: IDENT@147..148 "a" [] [] 2: R_BRACK@148..149 "]" [] [] 2: (empty) 3: TS_TYPE_ANNOTATION@149..158 0: COLON@149..151 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@151..158 0: STRING_KW@151..158 "string" [] [Whitespace(" ")] 4: (empty) 2: R_CURLY@158..159 "}" [] [] 5: (empty) 4: EOF@159..160 "" [Newline("\n")] []