Advertisement
Guest User

Untitled

a guest
Sep 20th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.85 KB | None | 0 0
  1. interface InstanceToCreateDto { }
  2.  
  3. interface InstanceToUpdateDto {
  4. id: string;
  5. }
  6.  
  7. interface FooBarCreateDto extends InstanceToCreateDto {
  8. plop: string;
  9. baz?: string | undefined;
  10. }
  11.  
  12. interface FooBarDto extends FooBarCreateDto, InstanceToUpdateDto {
  13. baz: string;
  14. }
  15.  
  16. interface PersonCreateDto extends InstanceToCreateDto {
  17. name: string;
  18. }
  19.  
  20. interface PersonDto extends PersonCreateDto, InstanceToUpdateDto { }
  21.  
  22. type InstanceToCreate = FooBarCreateDto | PersonCreateDto;
  23.  
  24. type InstanceToUpdate = FooBarDto | PersonDto;
  25.  
  26. function instanceExists(instance: InstanceToCreateDto | InstanceToUpdateDto): instance is InstanceToUpdateDto {
  27. return !!(instance as InstanceToUpdateDto).id;
  28. }
  29.  
  30. function createOrUpdateInstance(instance: InstanceToCreate | InstanceToUpdate) {
  31. if (instanceExists(instance)) {
  32. // update InstanceToUpdate
  33. }
  34. // create InstanceToCreate
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement