Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.54 KB | None | 0 0
  1. interface SerializableClass {
  2. new (...a:any[]): any;
  3. readonly className: string;
  4. }
  5. interface Serialised<T extends SerializableClass> {
  6. className: T['className']; // error
  7. value: InstanceType<T>;
  8. }
  9.  
  10. class Ok {
  11. static readonly className = "Ok"
  12. }
  13.  
  14. let o: Serialised<typeof Ok> = {
  15. className: "Ok",
  16. value: new Ok()
  17. }
  18.  
  19. let o2: Serialised<typeof Ok> = {
  20. className: "Okk", //err
  21. value: new Ok()
  22. }
  23.  
  24. class Bad{}
  25. let o3: Serialised<typeof Bad> //err Type 'typeof Bad' does not satisfy the constraint 'SerializableClass'.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement