带通用键的Typescript接口

时间:2019-05-10 06:55:24

标签: typescript

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

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

让我说我有一个用户界面

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

可以过滤用户请求,因此我的一般请求ist通过FilteredRequest扩展了

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

打字稿可以吗?


好吧,因为现在不可能。

也不能在键前添加前缀

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

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

但是keyof旨在返回stringnumber

1 个答案:

答案 0 :(得分:2)

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

This feature is being debated on github issue.