В TypeScript для проверки типа объекта при конвертировании из другого типа существует несколько способов. Один из самых популярных способов - это использование оператора as
или функции as
для явного приведения типов. Другой способ - использовать пользовательские типы и генерики для более безопасной конвертации.
Пример с использованием оператора as
:
interface User { name: string; age: number; } const data: any = { name: 'Alice', age: 30 }; const user = data as User; if (user && typeof user.name === 'string' && typeof user.age === 'number') { console.log('Converted user:', user); } else { console.log('Failed to convert data to User type'); }
Пример с использованием пользовательского типа:
interface User { name: string; age: number; } function convertToUser(data: any): User | null { if (typeof data.name === 'string' && typeof data.age === 'number') { return data as User; } return null; } const data: any = { name: 'Alice', age: 30 }; const user = convertToUser(data); if (user) { console.log('Converted user:', user); } else { console.log('Failed to convert data to User type'); }
Оба этих подхода помогают убедиться, что объект успешно сконвертирован в нужный тип, а также обеспечивают безопасность типов в процессе конвертации.