Объект 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.document
window.document
— это свойство, используемое для доступа к DOM страницы. Вы можете получать элементы и вносить изменения в DOM.
1console.log(window.document.title); // Display the title of the current document
- В этом примере отображается заголовок текущего документа.
window.localStorage
/window.sessionStorage
window.localStorage
иwindow.sessionStorage
— это свойства для доступа к функциям хранения, позволяющим сохранять данные пользователя в браузере.
1window.localStorage.setItem('key', 'value'); // Save data
2const value = window.localStorage.getItem('key'); // Retrieve data
3console.log(value); // 'value'
- В этом примере данные сохраняются в
localStorage
, затем извлекаются и отображаются.
window.location
window.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.setInterval
window.setTimeout
иwindow.setInterval
— методы для выполнения функций с задержкой или через определённые интервалы.
1window.setTimeout(() => {
2 console.log('This will be executed after 2 seconds');
3}, 2000);
- Этот код выполняет процесс, который выводит сообщение в консоль через две секунды.
window.alert
/window.confirm
/window.prompt
alert
,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-канал.