Typescript RxJS:映射到单一类型

时间:2019-04-29 13:12:53

标签: typescript rxjs

我需要将此联合类型string | { field:string, asc: boolean }的数组映射到第二个联合类型。

我的意思是:

import { from } from 'rxjs/observable/from';

var sortFields: Array<string | { field: string, direction: boolean }>;

from(sortFields)
    .map(sortField => {
        if (typeof(sortField) == "string")
            return { field: sortField, direction: true };
        else
            return { field: sortField.field, direction: sortField.direction };
    }
);

以上代码不太有效。告诉我map将返回类似Observable<{field:string, direction: boolean} | {field:string, direction: boolean}>的内容。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

它与最新版本的Typescript / rxjs配合使用

import { from } from 'rxjs';
import { map } from 'rxjs/operators';

var sortFields: Array<string | { field: string, direction: boolean }> = [];

from(sortFields).pipe(
    map(sortField => {
        if (typeof(sortField) == "string")
            return { field: sortField, direction: true };
        else
            return { field: sortField.field, direction: sortField.direction };
    })
);