program
comment "//// [tests/cases/conformance/expressions/typeSatisfaction/t"...
comment "//// [typeSatisfaction_propNameConstraining.ts]"
ERROR
identifier "type"
expression_statement (+27 nodes collapsed)
lexical_declaration (+42 nodes collapsed)
comment "// Should be OK -- retain info that a is number and b is str"...
lexical_declaration
let "let"
variable_declarator
identifier "a"
= "="
call_expression
member_expression
member_expression
identifier "p"
. "."
property_identifier "a"
. "."
property_identifier "toFixed"
arguments
( "("
) ")"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "b"
= "="
call_expression
member_expression
member_expression
identifier "p"
. "."
property_identifier "b"
. "."
property_identifier "substring"
arguments
( "("
number "1"
) ")"
; ";"
comment "// Should error even though 'd' is in 'Keys'"
lexical_declaration
let "let"
variable_declarator
identifier "d"
= "="
member_expression
identifier "p"
. "."
property_identifier "d"
; ";"
comment "//// [typeSatisfaction_propNameConstraining.js]"
lexical_declaration (+27 nodes collapsed)
comment "// Should be OK -- retain info that a is number and b is str"...
lexical_declaration
let "let"
variable_declarator
identifier "a"
= "="
call_expression
member_expression
member_expression
identifier "p"
. "."
property_identifier "a"
. "."
property_identifier "toFixed"
arguments
( "("
) ")"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "b"
= "="
call_expression
member_expression
member_expression
identifier "p"
. "."
property_identifier "b"
. "."
property_identifier "substring"
arguments
( "("
number "1"
) ")"
; ";"
comment "// Should error even though 'd' is in 'Keys'"
lexical_declaration
let "let"
variable_declarator
identifier "d"
= "="
member_expression
identifier "p"
. "."
property_identifier "d"
; ";"