2014-02-19 89 views
0

如何在下一個代碼塊(typeOf,instanceOf,...)中使用類型參數T. T是'組'。這可能是因爲JavaScript沒有類型。感謝名單。TypeScript使用類型參數

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

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

回答

1

對於泛型中的TypeArguments,你不能這樣做(就像你已經意識到的那樣)。

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

0

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);