Я могу назначить результат функции Typescript, которая возвращает несколько типов переменной с одним типом, согласно псевдокоду ниже:
export class MyComponent {
aNumber: number;
numberOrString(returnNumber: boolean): number | string {
if (returnNumber === true) {
return 5;
} else {
return 'Five';
}
}
constructor(){
this.aNumber = this.numberOrString(true) as number;
}
}
Ошибка типа генерируется, если ' as number 'опущено в строке в конструкторе.
Как я могу сделать то же самое, но с селектором ngrx, который возвращает несколько возможных типов? Например:
aNumber$: Observable<number>;
this.aNumber$ = this.store$.pipe(select(numberOrString, { returnNumber: true }));
Выдает ошибку типа, если я не определю aNumber $ как:
aNumber$: Observable<number | string>;
Но в этом контексте это будет только число, и я хочу установить тип соответственно.
ИЛИ я должен иметь два разных селектора, каждый из которых возвращает один тип?