В этом случае сообщение об ошибке компиляции очень показательно. Он жалуется, потому что этот код пытается выполнить деструктуризацию объекта для извлечения свойства images
из объекта, который не может гарантированно содержать это свойство .
Тип возврата getLinkPreview
- это тип объединения , что означает, что он возвращает объект, который будет удовлетворять хотя бы одному из членов типа объединения. Поэтому, поскольку getLinkPreview
может возвращать объект, который выглядит следующим образом:
{
url: string;
mediaType: string;
contentType: string;
favicons: any[];
}
TypeScript жалуется, что у этого объекта нет свойства images
.
Так как с этим обращаться this?
Как общее решение, вы можете сохранить результат getLinkPreview
в переменной, а затем выполнить нулевую проверку для свойства images
. Если у него есть уникальное свойство, вы можете привести его к соответствующему типу (возможно, вы захотите провести дополнительное тестирование).