Typescript:强制泛型具有强制性的某些键

时间:2019-03-13 03:59:50

标签: typescript

我希望下面的函数仅在其中有data键的情况下才接受id对象。然后,要从id访问data

function someFuntion<T>(data : T){
const id = data['id']  //Error : Element implicitly has an 'any' type because type '{}' has no index signature.
}

有可能吗?

1 个答案:

答案 0 :(得分:1)

您需要向通用类型参数添加约束:

function someFuntion<T extends { id: any}>(data : T){
    let id = data['id'] 
    id = data.id // also ok 
}