码迷,mamicode.com
首页 > 其他好文 > 详细

TypeScript静态方法继承

时间:2018-09-06 14:37:22      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:types   await   com   https   create   rom   code   return   版本   

同步版本

class Foo {
    static boo<T extends typeof Foo>(this: T, a: number): InstanceType<T> {
        return (new this()) as InstanceType<T>;
    }
}

class Bar extends Foo {}

// b: Bar
let b = Bar.boo(1);

异步版本

class Foo {
    static async boo<T extends typeof Foo>(this: T, a: number): Promise<InstanceType<T>> {
        const instance = new this();
        await instance.create();
        return <InstanceType<T>>instance;
    }
    private create(){}
}

class Bar extends Foo {}

(async () => {
    // b: Bar
    let b = await Bar.boo(1);
})();

引用自:https://github.com/Microsoft/TypeScript/issues/5863

TypeScript静态方法继承

标签:types   await   com   https   create   rom   code   return   版本   

原文地址:https://www.cnblogs.com/ystrdy/p/9597508.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!