Объект window в TypeScript
В этой статье объясняется объект window в TypeScript.
Вы можете изучить свойства и методы объекта window с помощью кода.
YouTube Video
Объект window в TypeScript
window — это глобальный объект в TypeScript и JavaScript, представляющий все окно браузера. Он включает множество свойств и методов для доступа к API браузера, манипулирования DOM (Document Object Model), использования таймеров, хранилища и других функций.
tsconfig.json и объект window
В TypeScript при доступе к объекту window глобальные функции, специфичные для браузера, имеют определения типов, что позволяет использовать автозаполнение в редакторе и проверку типов. Благодаря стандартному файлу определения типов TypeScript (lib.dom.d.ts), TypeScript распознает различные свойства и методы объекта window.
При использовании TypeScript обычно размещают файл tsconfig.json в корне проекта. Этот файл используется для указания параметров компилятора и области действия файлов определений типов.
При работе с window особенно важно подключить определения типов браузера (типы DOM). Без этого использование window и document приведёт к ошибкам типов.
1{
2 "compilerOptions": {
3 "target": "es6",
4 "module": "esnext",
5 "strict": true,
6 "lib": ["es6", "dom"], // Enable DOM type definitions
7 "outDir": "./dist"
8 },
9 "include": ["src"]
10}- Указав
"lib": ["es6", "dom"], вы обеспечите правильное распознавание и автодополнение типовwindowиdocument.
Основные свойства и методы window
window.documentwindow.document— это свойство, используемое для доступа к DOM страницы. Вы можете получать элементы и вносить изменения в DOM.
1console.log(window.document.title); // Display the title of the current document
- В этом примере отображается заголовок текущего документа.
window.localStorage/window.sessionStoragewindow.localStorageиwindow.sessionStorage— это свойства для доступа к функциям хранения, позволяющим сохранять данные пользователя в браузере.
1window.localStorage.setItem('key', 'value'); // Save data
2const value = window.localStorage.getItem('key'); // Retrieve data
3console.log(value); // 'value'
- В этом примере данные сохраняются в
localStorage, затем извлекаются и отображаются.
window.locationwindow.location— это объект, используемый для получения и изменения информации о текущем URL. Вы можете выполнять перенаправления и изменять URL-адреса.
1console.log(window.location.href); // Display the current URL
2window.location.href = 'https://example.com'; // Redirect to another page
- В этом примере отображается URL, и пользователь перенаправляется на другую страницу.
window.setTimeout/window.setIntervalwindow.setTimeoutиwindow.setInterval— методы для выполнения функций с задержкой или через определённые интервалы.
1window.setTimeout(() => {
2 console.log('This will be executed after 2 seconds');
3}, 2000);- Этот код выполняет процесс, который выводит сообщение в консоль через две секунды.
window.alert/window.confirm/window.promptalert,confirmиpromptотображают диалоговые окна для оповещений или запроса данных у пользователя.
1window.alert('Alert message');- Этот код отображает диалоговое окно с уведомлением сообщения.
События объекта window
Поскольку window является частью DOM, можно напрямую слушать его события. В TypeScript для событий автозаполняются типы, поэтому использование неправильных имён событий или свойств вызовет ошибки.
Событие изменения размера окна
1window.addEventListener("resize", (event) => {
2 console.log("Window resized:", window.innerWidth, window.innerHeight);
3});- Этот код выводит новую ширину и высоту в консоль при изменении размера окна.
Событие клавиатуры
1window.addEventListener("keydown", (event: KeyboardEvent) => {
2 console.log(`Key pressed: ${event.key}`);
3});- Этот код выводит нажатую клавишу в консоль, когда пользователь нажимает клавишу.
Событие загрузки страницы
1window.addEventListener("load", () => {
2 console.log("Page fully loaded");
3});- Этот код выводит сообщение в консоль, когда страница полностью загружена.
Примечания
-
В TypeScript типы объектов событий определяются автоматически, поэтому учет таких типов, как
KeyboardEventилиMouseEvent, делает ваш код безопаснее. -
Рекомендуется удалять обработчики событий, когда они больше не нужны. Вы можете удалить слушателей с помощью метода
window.removeEventListener.
1function handleClick() {
2 console.log("Clicked!");
3}
4
5// Add event listener
6window.addEventListener("click", handleClick);
7
8// Remove event listener
9window.removeEventListener("click", handleClick);- Этот код показывает пример добавления и последующего удаления слушателя события клика.
При добавлении пользовательских свойств
При добавлении пользовательских свойств к объекту window необходимо расширение типов в TypeScript, чтобы избежать ошибок типов.
1// Add a custom property to the window
2interface Window {
3 myCustomProperty: string;
4}
5
6window.myCustomProperty = "Hello, World!";
7console.log(window.myCustomProperty); // "Hello, World!"
- Этот код является примером добавления пользовательского свойства к объекту
windowв TypeScript, назначения значения и его отображения.
Предостережения при использовании глобального объекта window
Из-за строгой проверки типов в TypeScript попытка использовать несуществующие свойства или методы приведет к ошибкам. Например, попытка получить доступ к несуществующему свойству объекта window как есть вызовет ошибку, поэтому нужно правильно расширить тип.
Таким образом, объект window играет центральную роль в доступе к различным функциям браузерных приложений, и в TypeScript вы можете безопасно его использовать, благодаря проверке типов.
Вы можете следовать этой статье, используя Visual Studio Code на нашем YouTube-канале. Пожалуйста, также посмотрите наш YouTube-канал.