函数参数是一种以打字稿形式存在的属性

问题描述 投票:0回答:1

我想编写一个函数,该函数返回一个类型上存在的单个属性:

private getData(obj: TypeA): TypeB {
    // do stuff
    return dataObj;
}

private getValue(obj: TypeA, key): boolean {
    const value = this.getData(obj)[key];
    if (value === undefined) {
        return false;
    }
    return value;
}

我想对getValue的键进行限制,该键是TypeB的一部分。

javascript typescript types
1个回答
0
投票

似乎是这样的作品,但它似乎不是最好的解决方案:

private getValue<Z extends keyof TypeB>(
    obj: TypeA,
    key: Z
): boolean {
    const value = this.getData(obj)[key];
    if (value === undefined) {
        return false;
    }
    return value as boolean;
}
© www.soinside.com 2019 - 2024. All rights reserved.