【发布时间】:2020-05-23 21:51:51
【问题描述】:
我有一个简单的模块如下:
// my-module.ts
interface IProps {
prop1:string;
prop2:string;
}
const someData:IProps = {
prop1:'val1',
prop2:'val2'
} ;
export default {
someData:someData,
title:'someTitle'
};
假设我无权访问IProps接口,我可以像这样访问someData类型:
import * as myModule from '../my-module.ts';
type SomeDataType = typeof myModule.default.someData;
但是,我想将myModule 传递给通用函数并使用someData 键,如下所示:
import * as myModule from '../my-module.ts';
import { getPropValue} from '../helper.ts';
var val = getPropValue(myModule, 'prop1');
还有泛型函数:
// helper.ts
export function getPropValue<T>(module:T, propKey: keyof ? ) { // T.default.someData !!!
return module.default.someData[propKey];
};
如何访问default.someData 输入泛型函数参数以获取对象键?
【问题讨论】:
标签: typescript generics type-inference