A static type checker can use either the name (nominal typing) or the structure (structural typing)| flow.org
JavaScript classes| flow.org