如何在更改字段名时使用keyof?

时间:2017-10-24 19:28:20

标签: typescript typescript-typings typescript2.0

我有一个对象类型,其中定义了一些字段。现在我想动态创建另一个对象,其中每个fieldname都有一个$ - 后缀,并包含原始字段类型的observable。我想我可以通过使用keyof并向其添加+ '$'来实现此目的。但这不会转变。

import { Observable } from 'rxjs';

type AllFields = {
    foo: string,
    bar: number
};

type ObservedFields<T> = {
    [P in keyof T] + '$': Observable<T[P]>;
}

我想做什么:

const myObject: AllFields = {
foo: 'something',
bar: 7
}

const observed: ObservedFields<AllFields> = {
  foo$: Observable<string>,
  bar$: Observable<number>
};

0 个答案:

没有答案