我有一个映射到数组上的函数。它看起来像这样:
// opt is either `statusA` | `statusB`
options.map((opt: keyof StatusType) => {
const activeStatus = statusCollection[opt]; //typescript doesnt scream `of any type` error
...
其中,StatusType看起来像:
type Keyys = 'statusA' | 'statusB';
export type StatusType = {
[key in Keyys]: boolean;
};
我这样做是因为我希望能够从对象中检索计算属性,并将其存储在上面的"activeStatus"变量中。
如果选项始终是statusType
类型,这将很好,但是,作为一个泛型函数,我希望能够传入其他集合。我该如何定义type
来取代"StatusType",使其更通用&以正确地利用CCD_ 3功能。
我走在了正确的轨道上。我所做的只是使用OR|
创建一个包含不同类型定义的类型。并将其作为字符串类型的keyof
传递。
type TypeContainer = StatusTypeA | StatusTypeB;
options.map((opt: keyof sype) => {
const activeStatus = statusCollection[opt as keyof TypeContainer];
希望这能有所帮助。