TG Telegram Group & Channel
Frontend | Вопросы собесов | United States America (US)
Create: Update:

🤔 Когда стоит использовать тип any?

Тип any в TypeScript позволяет отключить проверку типов и использовать любую структуру данных, как в обычном JavaScript.
Но any убирает всю защиту TypeScript, поэтому его нужно использовать только в крайних случаях.

🚩Если тип данных неизвестен заранее (например, ответ от API)
Иногда сервер может вернуть разные структуры данных, и невозможно заранее определить точный тип.

async function fetchData(url: string): Promise<any> {
const response = await fetch(url);
return response.json();
}


Лучший вариант — использовать интерфейсы вместо any:
interface User {
id: number;
name: string;
}

async function fetchUser(url: string): Promise<User> {
const response = await fetch(url);
return response.json() as User;
}


🚩При миграции JavaScript в TypeScript

Если проект на чистом JavaScript, добавление TypeScript может сломать код. any помогает постепенно вводить строгую типизацию.
function log(value: any) {
console.log(value);
}


🚩Когда работаем с динамическими структурами (например, `localStorage`)

В localStorage можно сохранить что угодно, поэтому при чтении данных тип неизвестен.
const data: any = localStorage.getItem("user");


Лучше сразу привести any к нужному типу
const user = JSON.parse(localStorage.getItem("user") || "{}") as { id: number; name: string };


🚩Когда пишем универсальную библиотеку

Если функция должна работать с разными типами, any может быть временным решением.
function mergeObjects(obj1: any, obj2: any): any {
return { ...obj1, ...obj2 };
}


Лучший вариант с generic (T вместо any)
function mergeObjects<T, U>(obj1: T, obj2: U): T & U {
return { ...obj1, ...obj2 };
}


Ставь 👍 и забирай 📚 Базу знаний

🤔 Когда стоит использовать тип any?

Тип any в TypeScript позволяет отключить проверку типов и использовать любую структуру данных, как в обычном JavaScript.
Но any убирает всю защиту TypeScript, поэтому его нужно использовать только в крайних случаях.

🚩Если тип данных неизвестен заранее (например, ответ от API)
Иногда сервер может вернуть разные структуры данных, и невозможно заранее определить точный тип.
async function fetchData(url: string): Promise<any> {
const response = await fetch(url);
return response.json();
}


Лучший вариант — использовать интерфейсы вместо any:
interface User {
id: number;
name: string;
}

async function fetchUser(url: string): Promise<User> {
const response = await fetch(url);
return response.json() as User;
}


🚩При миграции JavaScript в TypeScript

Если проект на чистом JavaScript, добавление TypeScript может сломать код. any помогает постепенно вводить строгую типизацию.
function log(value: any) {
console.log(value);
}


🚩Когда работаем с динамическими структурами (например, `localStorage`)

В localStorage можно сохранить что угодно, поэтому при чтении данных тип неизвестен.
const data: any = localStorage.getItem("user");


Лучше сразу привести any к нужному типу
const user = JSON.parse(localStorage.getItem("user") || "{}") as { id: number; name: string };


🚩Когда пишем универсальную библиотеку

Если функция должна работать с разными типами, any может быть временным решением.
function mergeObjects(obj1: any, obj2: any): any {
return { ...obj1, ...obj2 };
}


Лучший вариант с generic (T вместо any)
function mergeObjects<T, U>(obj1: T, obj2: U): T & U {
return { ...obj1, ...obj2 };
}


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM


>>Click here to continue<<

Frontend | Вопросы собесов




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)