All our classes should adhere to the single responsibility principle (SRP). The Person class declared during the very first example in this chapter represents a person, including all of their characteristics (attributes) and behaviors (methods). We are going to modify the preceding class by adding an email as validation logic:
class Person { public name: string; public surname: string; public email: string; public constructor( name: string, surname: string, email: string ) { this.surname = surname; this.name = name; if (this.validateEmail(email)) { this.email = email; } else { throw new Error("Invalid email!"); } } public validateEmail(email: string) { const re = /S+@S+.S+/; return re.test(email); ...