We can define optional class properties and methods by appending the ? character at the end of the name of a property or method. This behavior is like the behavior that we observed in Chapter 3, Working with Functions, when we learned how to use the ? character to declare optional arguments in a function.
The following code snippet defines a class named Vector with an optional property named z. When we define a Vector instance using numeric values for the properties x and y, the Vector has two dimensions. When we define a Vector instance using numeric values for the properties x, y, and z, the Vector has three dimensions:
class Vector { public constructor( public x: number, public y: number, public z?: number ) {} public ...