какой тип вы присваиваете объекту с дочерними элементами в интерфейсе typescript

#javascript #typescript #vue.js #interface #typescript-typings

#javascript #typescript #vue.js #интерфейс #typescript-типизации

Вопрос:

У меня есть ответ

 filereader.onload = function(evt: any) {
  url = evt.target.result; //sending the link to url
};
  

Но, учитывая тот факт, что удаление типа any ускоряет работу приложения.
Я попытался указать параметру vet тип объекта, но тогда свойство target не существовало для типа object.
Я также пытался использовать интерфейс, но предоставление ему любого по-прежнему приводит к той же проблеме, от которой я пытаюсь избавиться.

Комментарии:

1. Типы не делают приложение быстрее или медленнее. Они не существуют, когда код ts переносится в javascript.

2. Если введено значение onload , Typescript должен определить тип, IOW просто удалите :any

3. Вы можете использовать интерфейс событий : function(evt: Event): void { ... }

4. После выполнения этого filereader.onload = function(evt: Event) { url = evt.target.resu< //отправка ссылки на url }; evt.target.result выдает ошибку Свойство ‘result’ не существует для типа ‘EventTarget’

Ответ №1:

Следующий встроенный тип должен сделать свое дело:

 filereader.onload = function(evt: { target: { result: string } }) {
  url = evt.target.result; //sending the link to url
};