打字稿将类型声明为 属性 of class

typescript declare type as a property of class

class Icons{
    static home = "<svg...";
    static back = "ico/back.png";
}

class Menu{
    addItem(icon: ????){....}
}

您会在 Menu.addItem 的图标参数中声明什么类型以强制它成为 class 图标的成员?

到目前为止

addItem(icon:[keyof typeof Icons]);
menu.addItem("home", someFn);

使用 属性 名称作为字符串进行近似和验证,但是,是否可以将其声明为一种类型,让我表达对图标 属性 的直接引用

menu.addItem(Icons.home, someFn);

我怀疑我在这里遗漏了一些非常基本的东西

使用字符串枚举:

enum Icons {
    home = "<svg...",
    back = "ico/back.png"
}

function addItem(icon: Icons) {
    console.log(icon);
}

addItem(Icons.home);