Typescript Generics Constraints In Project