【问题标题】:Get element from single-value dictionary without knowing name在不知道名称的情况下从单值字典中获取元素
【发布时间】:2022-10-08 06:27:03
【问题描述】:

假设我有一个定义如下的字典:

interface dict {[key: string]: number}

我有一个实例 myDict 的 dict 我知道它包含一个元素。在不知道键名的情况下如何获取它的键和值?我可以想到这个解决方案:

for(const key in myDict){
    console.log(key)
    console.log(myDict[key])
}

我想知道是否有一种不使用 for 循环的更清洁的方法。

【问题讨论】:

  • 您可以尝试Object.keys(myDict)[0],但请记住,for-in 循环会枚举原型链,这可能会产生意想不到的效果。

标签: typescript


【解决方案1】:
function getTheOnlyPropertyValue<T extends Record<keyof any, any>>(object: T): T[keyof T] {
    let values = Object.values(object)
    if (values.length !== 1) throw new Error('must have 1 value');
    return values[0];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多