
타입
typeof 연산자가 설명하는 것타입스크립트의 기본 타입
const sym1 = Symbol();
const sym2 = Symbol();
const sym3 = Symbol('foo');
const sym4 = Symbol('foo');
console.log(sym1 === sym1); // true
console.log(sym1 === sym2); // false
console.log(sym3 === sym4); // false타입시스템
동작 과정
let name = 'jumi';
name.length();
~~~~~~~~~~~~~~
Error: Type Number has no call signature
코드를 읽고 name이라는 변수를 이해초기값이 ‘jumi’이므로 string 타입이라고 결론name의 .length멤버를 변수처럼 호출하는 코드 확인.length멤버는 함수가 아닌 숫자라는 오류를 표시오류 종류
let let wat;console.blub(’test’);오류가 발생하더라도
Js 파일은 생성됨 → 의도한대로 동작하지 않을 수 있음 → tsconfig.json에서 옵션 설정 가능
할당 가능성
함수 호출이나 변수에 값을 제공할 수 있는지, 즉 전달된 값이 예상된 타입으로 할당이 가능한지 여부 확인
let name = 'jumi';
name = 28;
~~~~~~~~~~
// -> Error: Type 'number' is not assignable to type 'string'
// 첫 번째 type: 할당하려고 시도하는 값
// 두 번째 type: 값이 할당되는 변수
// 즉, 첫 번째 타입을 두 번째 타입에 할당하려고 하는데 타입이 다르다. 타입 애너테이션
초기값이 없어도 타입을 지정하는 구문
let name: string;
타입 즉시 유추 가능한 경우에 애너테이션을 사용하면 중복 (불필요)
let name: string = 'jumi';
타입 형태
타입은 객체 형태를 가질 수 있으며, 할당가능성 뿐만 아니라 객체(해당 변수)에 어떤 속성이 존재하는지도 확인
let cher = {
firstNm: 'a',
lastNm: 'b'
}
cher.middleNm;
~~~~~~~~~~~~~~
// Error: middleNm dose not exist
모듈
// a.ts
export const shared = 'a';
// b.ts
export const shared = 'b';
// c.ts
import {shared} from './a';
~~~~~~~~~~~~~~~~~~~~~~~~~~
export const shared = 'c';
~~~~~~~~~~~~~~~~~~~~~~~~~~
// d.ts
const shared = 'c';
잘 봤습니다. 좋은 글 감사합니다.