interface랑 비슷해보입니다.
primitive, Union Type, Tuple, Function
기타 직접 작성해야하는 타입을 다른 이름을 지정할 수 있다.
만들어진 타입의 refer로 사용하는 것이지 타입을 만드는것은 아닙니다.
type MyStringType = string;
const str = 'world';
let myStr: MyStringType = 'hello';
myStr = str;
let person: string | number = 0;
person = 'Mark';
type StringOrNumber = string | number;
let another: StringOrNumber = 0;
another = 'Anna';
person리아고 하는 변수를 string | number 붙였을때
person을 딴데가서 할당하거나 사용할때는 또 그쪽에다가 string | number 이걸또 사용해야겠죠,
일단 타이핑이 많아져 상당히 번거롭습니다. 그래서 StringOrNumber 라는 별칭을 붙여줍니다.
보통은 기본적으로 길게쓰는걸짧게할수있고 반복되는것을 줄여주는 역할을 합니다.
let person: [string, number] = ['Mark', 35];
type PersonTuple = [string, number];
let another: PersonTuple = ['Anna', 24];
튜플 타입에 별칭을 줘서 여러군데서 사용할 수 있게 한다.
함수도 별칭을 줄 수 있다.
type EatType = (food: string) => void;
그래서 우리가 보통 매개변수로도 function을 넣기도 하는데
EatType이라고하는 별칭은 (food: string) => void; 요런 형태다 라고 지칭하는겁니다.
지금 듣고있는 강의 강사님의 기준은 타입이 타입으로서의 어떤 목적이나 존재가치가 명확하면 interface를 쓰고,
그렇지 않고 다른 대상을 가리킬뿐이라던가 어떤 별명으로서만 존재한다면 type Alias를 주로 사용하는편이라고 합니다.