在TS中,如何在公共方法的参数接口限制数据格式,使用它的方法限制参数名称?

发布于 2022-09-12 13:48:06 字数 851 浏览 14 评论 0

现在要写两个方法:
内层方法是一个公共方法(或者叫工具方法),我期望参数限制为某种格式嵌套:

interface DataItem<T> {
    data: T;
    fileNamae: string;
}
interface DataObj {
    [index: number]: DataItem;
}
function generateData(form: DataObj) {
    // 处理form
    return form
}

外层方法参数接口限制参数的名称,例如:

interface IForm {
    a: DataItem;
    b: DataItem;
}
function getData (form: IForm) {
    // 将form直接转换格式
    const finalData = generateData(form)
}

目前这样写,会提示类型“IForm”的参数不能赋给类型“DataObj”的参数。

以上代码随便写的,初学中,可能有错请谅解,希望获得一个用TS做这种东西的思路。

更:

描述确实不够清晰,上面的代码实例描述如下:

我要封装一堆api请求方法,某些接口需要用到一种特殊的数据结构,要把处理这种数据结构的方法封装成一个公共函数。

这个函数接收一个特定的结构的参数,比如是一个对象数组,里面的结构固定。

然后那些api请求方法的参数则是普通的接口,可以提示需要哪些key。

我希望把api方法的参数直接传给公共函数,应该怎样用ts描述?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文