https://geshan.com.np/blog/2022/06/typescript-optional-parameters/