有没有办法实现类似的目标?
由于在if语句和someFunction调用之间使用了键和值,因此无法在if语句中调用someFunction。
type someObj = {
a: string,
b: number
};
type someObjType = { [K in keyof someObj]: { prop: K, value: someObj[K] } }[keyof someObj];
function someFunction(args: someObjType) {
};
function someOtherFunction() {
let key: someObjType['prop'],
value: someObjType['value'];
if (Math.random() > .5) {
key = 'a',
value = 'some String'
} else {
key = 'b';
value = 200
};
// Do Something using key and value.
someFunction({ prop: key, value }) // throws an error.
};
答案 0 :(得分:1)
您能否继续在someObjType
语句中创建类型为if
的对象,然后使用obj.prop
和obj.value
而不是key
和{ {1}}?
value