Как включить VS IntelliSense для объектов IndexedDB и DOM - PullRequest
0 голосов
/ 26 мая 2020

Я только начал изучать, как разработать клиентское веб-приложение с помощью сообщества Visual Studio 2019 на ноутбуке Windows 10. Приложение, которое я исследую, будет использовать IndexedDB для локального хранилища. В моем первоначальном исследовании я сталкивался с ситуациями, когда VS явно не знает тип объектов IndexedDB и DOM, и поэтому IntelliSense не может помочь мне обнаружить свойства и методы объекта. Я обнаружил, что могу использовать «как любой» в качестве обходного пути в TypeScript для ошибки, вызванной неизвестным свойством или ссылкой на метод (это генерирует функциональный код JS), и что в качестве альтернативы я могу явно ввести приведение объекта, используя скобку TypeScript (<>) обозначение. Проблема в том, что найти тип определенных объектов непросто. Я попытался сделать это, ища тип объекта «как любой» в отладчике, но он был неудачным.

Итак, есть ли способ сообщить VS, как обнаружить объект IndexedDB и DOM типы, чтобы IntelliSense работал без проблем, или, если это не удается, есть ли в VS способ легко найти тип объектов IndexedDB и DOM, чтобы я мог явно использовать их вместо использования «как любой»? Если нет способа сделать что-либо из этого с помощью VS, можете ли вы хотя бы указать мне на документацию по объектам IndexedDB и Html DOM, которые показывают тип объекта, который распознает TS? Я включил несколько примеров того, где у меня было и не получалось явное приведение типов.

Спасибо. Стив

// Successful DOM casting: 
var colIndex = (<HTMLTableDataCellElement>elem).cellIndex;
var rowIndex = (<HTMLTableRowElement>elem.parentNode).rowIndex;

// Unsuccessful DOM casting.  Statement 1 triggers an error.
// I can't find what object type getElementById returns: 
let stringKey = (<HTMLElement>document.getElementById("recordNumber")).value;
let stringKey = (document.getElementById("recordNumber") as any).value;

// Successful IndexedDB casting: 
dbReq.onsuccess = function (event) { myDatabase = (<IDBOpenDBRequest>event.target).result; let x = 1; }
//dbReq.onsuccess = function (event) { myDatabase = (event.target as any).result; let x = 1; }
...