Bonjour, Je cherche a faire une methode Generic qui permet de passer le type pour l'utiliser en tant que clé dans un tableau.


import { IIpcChannel } from "./IIpcChannel";

export enum IpcType {
    MAIN,
    RENDERER
} 

export type IpcChannelsType = { [key in IpcType]: Map<string, IIpcChannel> };

export default class IpcManager{
    protected ipcChannels: { [key in IpcType]: Map<string, IIpcChannel> };

    constructor() {
        this.ipcChannels[IpcType.MAIN] = new Map<string, IIpcChannel>();
        this.ipcChannels[IpcType.RENDERER] = new Map<string, IIpcChannel>();
    }

    public getChannels<IpcType>(): Map<string, IIpcChannel> {
        return this.ipcChannels[IpcType];
    }
}

Ce que je veux

Je fait un Manager Global pour gerer l'ipcMain et l'ipcRenderer dans un projet electron et j'aimerais avoir une seule class qui stock et gère les deux type qui on les même méthode. j'aimerais donc pouvoir utiliser la methode comme ceci :

const ipcManager = new IpcManager();

let ipcRendererChannels = ipcManager.getChannels<IpcType.RENDERER>();

Ce que j'obtiens

j'obtient une erreur de tsconfig qui dit la chose suivante :
Impossible d'utiliser le type 'typeof IpcType' comme type d'index.ts(2538)
(alias) enum IpcType
import IpcType

Je n'arrive pas encore a métriser le typescript je suis assez nouveaux dans ce language donc si quelqu'un peut m'aider a comprendre Merci!

Aucune réponse