Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- interface SerializableClass {
- new (...a:any[]): any;
- readonly className: string;
- }
- interface Serialised<T extends SerializableClass> {
- className: T['className']; // error
- value: InstanceType<T>;
- }
- class Ok {
- static readonly className = "Ok"
- }
- let o: Serialised<typeof Ok> = {
- className: "Ok",
- value: new Ok()
- }
- let o2: Serialised<typeof Ok> = {
- className: "Okk", //err
- value: new Ok()
- }
- class Bad{}
- 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