繁体   English   中英

使用类型参数的TypeScript

[英]TypeScript using type parameter

我如何在下一个代码块(typeOf,instanceOf,...)中使用类型参数T。 T是“组”。 是否可能因为JavaScript没有类型而导致。 感谢名单。

export class LocalStorage<T> implements ILocalStorage<T> {
    constructor() {}

    getKey(): string {
        if (T is 'Group')
            return "Groups";
    }
}

您无法对泛型中的TypeArguments做到这一点(您已经意识到)。 但是,如果使用TypeScript类,则可以执行运行时检查:

class Group{}


function getKey(item:any): string { 
    if (item instanceof Group)
        return "Groups";
    else
        return 'invalid';
}


console.log(getKey(new Group()));

上面的代码中没有打字稿魔术。 我们只是在使用javascript instanceof运算符: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof

Thanx basarat。 你指出我正确的方向。 我的代码现在看起来更好了。

export class LocalStorage<T> implements ILocalStorage<T> {
    private instance: any;
    constructor(instance: any) {
        this.instance = new instance(null);
    }

    getKey(): string {
        if (this.instance instanceof g.Group)
            return "Groups";
        else 
            return "Invalid";
    }
}

//using
var groupLocalStorage = new ls.LocalStorage<g.Group>(g.Group);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM