interface PeopleInterface { name: string age: number } const me1: PeopleInterface = { name: 'yc', age: 34, } type PeopleType = { name: string age: number } const me2: PeopleType = { name: 'yc', age: 31, } 위에서 볼 수 있는 것 처럼, interface는 타입과 마찬가지로 객체의 타입의 이름을 지정하는 또 다른 방법이다. 차이점 - 확장하는 방법 interface PeopleInterface { name: string age: number } interface StudentInterface extends PeopleInterface { schoo..
Generic - 타입을 마치 함수의 파라미터처럼 사용하는 것을 의미합니다. 코드 재사용 측면에서 아주 유용. function getSize(arr:number[]| string[]| boolean[]| object[]):number { return arr.length; } const arr1 = [1,2,3]; getSize(arr1); const arr2 = ["a", "b", "c"]; getSize(arr2); const arr3 = [true, false, false]; getSize(arr3); const arr4 = [{},{},{name: 'Tony'}] getSize(arr4); 유니언 타입을 사용해서 늘릴 수 있지만, 효율 저하 function getSize(arr: T[]):numbe..
Enum은 그 안에 무슨 값들을 열거했냐에 따라서 Numeric enums, String enums 등으로 불리기도 하는데, 보통 상수들의 집합을 정의하고자 할 때 주로 사용되고는 한다. 숫자 열거형 enum Weekdays { Monday, Tuesday, Wednesday, Thursday = 10, Friday, Saturday, Sunday, } let day: Weekdays = Weekdays.Thursday; console.log(day) 보통 enum은 위와 같이 사용하고는 하는데, 왜 숫자 열거형이냐 하면 따로 특정한 값이 주어지지 않으면 자동적으로 0부터 숫자가 할당되기 때문이다. Monday = 0, Tuesday = 1, Wednesday = 2, 이런 식으로. 그렇다면 Thursd..
TypeScript는 프로그래밍 언어, 작성한 코드가 자바스크립트로 변환 개발자가 실수하지 않도록 보호. 어떻게? 타입스크립트 작성 → 통과 → 컴파일 → 자바스크립트 (즉, 타입스크립트에서 에러가 있으면 JS로 컴파일이 안됨.) 리터럴 타입(Literal Type): 정확한 타입 - TypeScript의 리터럴 타입은 string, number 두 가지가 있으며, 문자열이나 숫자에 정확한 값을 지정할 수 있습니다. https://www.typescriptlang.org/play?#code/Q 문자열 리터럴 타입 (String Literal Types) 아래 코드에서 Food 에서 허용한 3개의 문자열 외에 다른 문자열을 사용하게 되면 에러가 발생한다. type Food = "rice" // 리터럴 타입..