因为 "interface" 不支持这种写法,索引签名 - "index signature" 的写法是 "[key: ]".
可以看看 "index
signature" (https://link.segmentfault.com/?enc=wM92BfDzEs%2Bh7zbLR2dgRw%3D%3D.GWtcYo%2FrcjEN0PC7h0lq42l%2BXx3eKsf6iKg3nwpFoC%2Bzi0%2BntuQTjteWk7woMX5kyszaiZdkw%2Bin1Iaqnx9YeonERzD43OE%2Fhtg5o7qA1EY%3D)
中的说明.
所以你的那个写法还可以改成这样:
interface ActionType {
[key: string]: typeof INITIAL_STATE[keyof typeof INITIAL_STATE]
}
let demo: ActionType = {
name: [1, 2, 3],
age: 20,
gender: ["male", "female"],
};
console.log(demo);
/**
* { name: [ 1, 2, 3 ], age: 20, gender: [ 'male', 'female' ] }
*/