Я работаю над проектом реагирования для среды SharePoint.
У меня вопрос более или менее общий.
Я столкнулся с определенной проблемой, которую не понимаю:
Iпытался использовать sp.search с объектом, совпадающим с интерфейсом SearchQuery, но сделал это в расширяющем классе response.component
код:
public search(query: string, properties: Array<string>, rowLimit: number): Promise<SearchResults> {
return new Promise<SearchResults>(async (resolve) => {
let result = await sp.search(<SearchQuery>{
Querytext: query,
SelectProperties: properties,
RowLimit: rowLimit
});
resolve(result);
});
}
Как видите, это всего лишьОсновная функция поиска.Если я использую sp.search в классе, который не расширяет response.component, или если я не использую экземпляр searchquery, но простая строка запроса, все работает нормально.
Кажется, что это ошибка типа, ночестно говоря, я не понимаю, что происходит.
Ошибка:
[ts]Argument of type 'Element' is not assignable to parameter of type 'SearchQueryInit'. Type 'Element' is not assignable to type 'ISearchQueryBuilder'.
Property 'query' is missing in type 'Element'. [2345]
[ts] JSX element 'SearchQuery' has no corresponding closing tag. [17008]
[ts] 'SearchQuery' only refers to a type, but is being used as a value here. [2693]
Поэтому я решил просто написать сервис, использующий pnpjs, и это совершенно нормально, тем более что я не планировал использовать pnpjsв компоненте это должно было быть немного быстрее и иметь что-то для тестирования и работы.но тем не менее, я действительно хотел бы понять, что происходит.Кстати, я использую TypeScript, если это интересно.