【问题标题】:Typescript interface with keys of Generic带有通用键的打字稿界面
【发布时间】:2019-05-10 15:45:46
【问题描述】:

我正在为打字稿前端/后端应用程序定义一个 api。

现在我想写一个接口,它允许包含在另一个接口中定义的所有可用键,前缀为filter.

假设我有一个用户界面

interface User {
  firstname: string;
  lastname: string;
}

可以过滤用户请求,所以我的一般请求是用 FilteredRequest 扩展的

interface FilteredRequest<T> {
  [key: 'filter.' + keyof T]: any;
}

打字稿可以做到这一点吗?


好的,因为现在不可能。

也不用 someting 为键添加前缀也不起作用

interface FilteredRequest<T> {
  [key: keyof T]: any;
}

An index signature parameter type must be 'string' or 'number'.ts(1023)

但 keyof 旨在返回 stringnumber

【问题讨论】:

  • 您可以使用映射类型type FilteredRequest&lt;T&gt; = { [key in keyof T]: any; } 或使用Recordtype FilteredRequest&lt;T&gt; = Record&lt;keyof T, any&gt;

标签: typescript


【解决方案1】:

不幸的是,这在当前 (3.4.5) 版本的 Typescript 中是不可能的。

This feature is being debated on github issue.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 2022-01-05
    • 2020-03-27
    • 2019-12-18
    • 2022-06-23
    • 2022-01-10
    • 1970-01-01
    相关资源
    最近更新 更多