OPEN HYPER STEP
← 목록으로 (TypeScript)
TS · 15 / 34
ts
CHAPTER 15 / 34
읽기 약 2
SYNTAX

타입 어서션 & Non-null 어서션


핵심 개념

타입 어서션(as Type)은 개발자가 타입을 직접 지정합니다. Non-null 어서션(!)은 null/undefined가 아님을 보장합니다. unknown 타입은 타입 어서션 전에 사용이 불가합니다. 어서션을 지우며 타입 강제 지정이 어떻게 사라지는지 확인하십시오.

코드 분석
TS📋 코드 (24줄)
// as 타입 어서션 시뮬레이션
  const unknownData = 'T-800';
  const asString = unknownData;  // (unknownData as string)
  const asNumber = Number(unknownData.replace(/[^0-9]/g, ''));  // (unknownData as unknown as number)

  // DOM Non-null 어서션
  const container = document.currentScript.parentElement;  // document.getElementById('app')!

  // 이중 어서션
  function forceType(val) { return val; }  // val as unknown as TargetType

  const results = [
    { desc: 'as string 어서션', result: `"${asString}" (${typeof asString})`, safe: true },
    { desc: 'as number 변환', result: `${asNumber} (${typeof asNumber})`, safe: true },
    { desc: 'Non-null ! 어서션', result: container ? 'DOM 요소 있음 ✓' : '없음 ✗', safe: !!container },
    { desc: '이중 어서션 (위험!)', result: '타입 시스템 우회 — 런타임 오류 가능', safe: false },
  ];

  results.forEach(r => {
    const el = document.createElement('div');
    el.style.marginBottom = '6px'; el.style.fontSize = '11px';
    el.innerHTML = `<span style="color:#f59e0b;">${r.desc}</span><br><span style="color:${r.safe?'#888':'#10b981'}; font-size:10px;">${r.result}</span>`;
    document.currentScript.parentElement.appendChild(el);
  });

AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude

무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6

이 TS '타입 어서션 & Non-null 어서션' 코드에서
타입 에러·any 남용·타입 안전성 누락을 찾아
엄격한 타입으로 리팩토링해줘.
ChatGPT

무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro

'타입 어서션 & Non-null 어서션'를 실무에서 사용하는
패턴 3가지를 비교표로 보여주고
각각의 적합한 케이스를 알려줘.
Gemini

무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro

이 TS '타입 어서션 & Non-null 어서션' 관련 코드 전체의 타입 구조를
분석하고 제네릭·유틸리티 타입으로
개선할 포인트를 정리해줘.
Grok

무료: Grok 4.1 / SuperGrok $30/mo

TypeScript '타입 어서션 & Non-null 어서션'를 꼭 써야 하는지
개발 속도 vs 안전성 관점에서
솔직하게 평가해줘.

⭐ 이것만 기억하세요
타입 어서션 & Non-null 어서션 이 3가지만 확실히 잡으세요
1.DOM에서 querySelector의 반환 타입이 Element | null이라 null 체크 없이는 프로퍼티에 접근할 수 없습니다
2.as 키워드로 타입을 단언하고, ! 연산자로 null/undefined가 아님을 확신할 때 사용합니다 — 남용하면 런타임 에러 위험
3.다음 챕터에서 타입을 프로그래밍적으로 변환하는 맵드 타입과 조건부 타입을 배웁니다


공유하기
진행도 15 / 34