簡體   English   中英

類型為鍵打字稿的字典

[英]dictionary with a Type as a key typescript

我想創建一個類型為值的字典。

fe,在C#中,我願意做: Dictionary<Type, WhateverINeed> ,但是在打字稿中,我確實知道可以做到這一點。

我在@angulalr/core遇到了type.d.ts ,但是我不知道如何使用它。 我已經看到了使用Route接口的通用類型類,在其中您可以為路由提供Component類。

基本上,我想在類型和該類的Observable之間創建映射

但是我知道TypeScript的字典中只能使用的字典鍵類型是intstring

用例可以是:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM