В TypeScript сообщение об ошибке «Тип ‘Observable
Метод 1: утверждение типа
Один из способов устранить эту ошибку — использовать утверждение типа для явного указания типа массива неизвестного[]. Вот пример:
import { Observable } from 'rxjs';
interface DataSuccess {
// Define your DataSuccess interface properties here
}
const unknownArray$: Observable<unknown[]> = ...; // Your unknown[] observable
const dataSuccessArray$ = unknownArray$ as Observable<DataSuccess[]>;
Метод 2: использование оператора map()
Другой подход заключается в использовании оператора map() для преобразования массива неизвестного[] в массив DataSuccess[]. Вот пример:
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
interface DataSuccess {
// Define your DataSuccess interface properties here
}
const unknownArray$: Observable<unknown[]> = ...; // Your unknown[] observable
const dataSuccessArray$ = unknownArray$.pipe(
map((unknownArray: unknown[]) => {
// Perform the transformation logic here
const dataSuccessArray: DataSuccess[] = unknownArray.map((item: unknown) => {
// Convert each item in the unknown array to DataSuccess type
// ...
});
return dataSuccessArray;
})
);
Метод 3: использование пользовательской функции сопоставления
Если у вас сложная логика преобразования, вы также можете создать собственную функцию сопоставления для преобразования каждого элемента массива неизвестного [] в тип DataSuccess. Вот пример:
import { Observable } from 'rxjs';
interface DataSuccess {
// Define your DataSuccess interface properties here
}
function mapUnknownArrayToDataSuccess(unknownArray: unknown[]): DataSuccess[] {
// Perform the custom transformation logic here
const dataSuccessArray: DataSuccess[] = unknownArray.map((item: unknown) => {
// Convert each item in the unknown array to DataSuccess type
// ...
});
return dataSuccessArray;
}
const unknownArray$: Observable<unknown[]> = ...; // Your unknown[] observable
const dataSuccessArray$ = unknownArray$.pipe(
map((unknownArray: unknown[]) => mapUnknownArrayToDataSuccess(unknownArray))
);
В этой статье мы обсудили три метода преобразования Observable
Не забывайте всегда предоставлять необходимые интерфейсы для DataSuccess и корректировать примеры кода в соответствии с вашими конкретными требованиями. Приятного кодирования!