簡體   English   中英

在泛型函數中推斷導入的模塊默認類型 [typescript]

[英]Infer imported module default type in generic function [typescript]

我有一個簡單的模塊如下:

// 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類型以獲取對象鍵?

在這里,我如何設法做到這一點:

// helper.ts
type ModuleDefault = { default: { someData: {} } };
export function getPropValue<T extends ModuleDefault>(module:T, propKey: keyof T['default']['someData'] ) {
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM