
interface: 객체/함수 타입 정의. 선언적 확장(같은 이름의 interface 선언) 가능 (extends 키워드 이용해서 확장)
type : 단순한 변수(원시) 타입 지정. 선언적 확장 불가능 (&을 이용해서 확장). 모든 타입 선언
변수명 : 타입명
let name : string = 'kim';
let arr : number[ ] = [123, 45];
type nameType = string | number; // 문자형 or 숫자형
let 이름 : nameType = 'kim';
type NameType = 'kim' | 'park';
let 이름 : NameType = 'kim'; // 이름이라는 변수에 'kim'과 'park'만 들어올 수 있다.
function func1(x: number) : number{
return x*2
}
type myObj = {
name? : string;
age : number
}
let test : myObj = {
name: 'kim',
age : 50
}