我有這樣的事情:檢查MyInterface的是的instanceof MyClass類型<T>
我發現類似的問題對SO:How can I check if element is an instanceof U?, 但它只是說明如何實現OfType<T>
,不OfType<T<U>>
export class Foo implements IFoo
{
private _items:Array<MyInterface> = new Array<MyInterface>();
public Something =() =>
{
var myTypes = this.OfType<MyClass<TestModel>>(this._items);
}
private OfType = <T>(items:any[]) =>
{
//here i would like to return all this._items that are T
}
}
export class TestModel
{
}
export class MyClass<T>
{
}
如何我會檢測類是T<U>
類型嗎? 這個事件是否可能,如果nessecery我願意實施黑客?
JsLinq具有OfType的實現。另外,請查看我在LINQ-to-TypeScript中的想法。 –
@StephenChung你的意思是http://jslinq.codeplex.com/SourceControl/latest#Nuget/package/Content/Scripts/JSLINQ.js?我找不到OfType,除了現有的js庫不能使用打字稿泛型,因爲它們在編譯時被刪除。它必須是某種將類型傳遞給對象的模式。 – formatc
糟糕。我的意思是Linqjs。抱歉! Linqjs是LINQ的完整實現,包括OfType運算符。它有TypeScript定義文件。 –