我有一个名为getSpecificPlacementOption
的方法,我想定义其返回值。不幸的是我对Typescript还是很陌生,所以我不确定如何定义它。我有一个名为placementOptions
的对象,我想返回的是其特定键之一的特定值:
export interface PlacementOptions {
badgeOptions?: BadgeOptions;
cardLayoutOptions?: CardLayoutOptions;
}
const getSpecificPlacementOption = (key: placementOptionsKey) => placementOptions[key];
如何定义此方法placementOptions[key]
的返回?
答案 0 :(得分:1)
// Return type could instead be inferred
function getSpecificPlacementOption<T extends keyof PlacementOptions>(key: T): PlacementOptions[T] {
return placementOptions[key];
}
const getSpecificPlacementOption2: <T extends keyof PlacementOptions>(key: T) => PlacementOptions[T]
= key => placementOptions[key];
更简单,但是TypeScript不知道返回哪个属性,只有一些是:
const getSpecificPlacementOption =
(key: keyof PlacementOptions) => placementOptions[key];