Middle
25
Қалай анықтау керек, unknown типтегі мән нақты атауланған типке жататынын? TypeScript-ке тексеру орындалғанын қалай түсінуге болады (тип қорғаушы)?
Сұралған компаниялар
Электронные офисные системы
AI-дан жауап
sobes.tech AI
TypeScript-те unknown типті мәннің нақты атаулы типке сәйкестігін анықтау үшін тип қорғаушы (type guard) функциясын жазу керек. Мұндай функция объектінің құрылымы немесе қасиеттерін тексереді және компиляторға тексеруден кейін мәннің қажетті типке ие екенін хабарлайды.
Мысал ретінде, егер интерфейс бар деп алайық
interface User {
name: string;
age: number;
}
Және value: unknown мәні бар болса, value — бұл User екенін тексеру үшін функция жазамыз:
type User = { name: string; age: number };
function isUser(value: unknown): value is User {
return typeof value === 'object' && value !== null &&
'name' in value && typeof (value as any).name === 'string' &&
'age' in value && typeof (value as any).age === 'number';
}
Мұнда value is User — бұл арнайы синтаксис, ол TypeScript-ке егер функция true қайтаратын болса, онда value-ны User типі ретінде қарастыруға болатынын айтады.
Қолданылуы:
const data: unknown = getData();
if (isUser(data)) {
// Мұнда TypeScript `data`-ның `User` екенін біледі
console.log(data.name);
} else {
// `data` — `User` емес
}
Осылайша, type guard unknown типімен қауіпсіз жұмыс істеуге мүмкіндік береді, оны нақты атаулы типке дейін нақтылайды.