[英]dictionary with a Type as a key typescript
我想創建一個類型為值的字典。
fe,在C#中,我願意做: Dictionary<Type, WhateverINeed>
,但是在打字稿中,我確實知道可以做到這一點。
我在@angulalr/core
遇到了type.d.ts
,但是我不知道如何使用它。 我已經看到了使用Route
接口的通用類型類,在其中您可以為路由提供Component類。
基本上,我想在類型和該類的Observable
之間創建映射
但是我知道TypeScript的字典中只能使用的字典鍵類型是int
和string
。
用例可以是:
service.method<MyClass>(...)
要么
service.method(MyClass, ...)
感謝您的幫助!
這基本上是Map<,>
類型安全包裝器Map<,>
並且僅適用於具體的類(函數):
import {Type} from '@angular/core';
class Service
{
private map = new Map<Type<any>, Observable<any>>();
public set<T>(key:Type<T>, value:Observable<T>):void
{
this.map.set(key, value);
}
public get<T>(key:Type<T>):Observable<T>
{
return this.map.get(key);
}
}
const service = new Service();
service.set(MenuModel, Observable.of(new MenuModel()));
service.set(Number, Observable.of(0));
service.get(MenuModel).subscribe(model => console.debug('menu', model.userMenu));
service.get(Number).subscribe(model => console.debug('number', model));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.