본문 바로가기
728x90
반응형
SMALL

프론트개발/TypeScript7

[TypeScript] 클래스 클래스(Class) object를 만드는 청사진, 설계도 클래스 이전에는 함수를 통해 객체를 만들었다. OOP(객체 지향 프로그래밍)을 위한 기본. TypeScript에서는 클래스도 타입의 하나이다. class Human { //클래스의 이름은 대문자로 시작. name; constructor(name: string) { this.name = name; //this는 생성된 객체 자신을 가리킴. } } const h1 = new Human("Jack"): // 함수를 객체로 만들 때 처럼 new를 쓴다. console.log(h1); // Human { name: "Jack"} class 키워드를 통해 생성 가능. 이름은 주로 대문자를 이용. new를 사용하여 object 생성. constructor를 이.. 2022. 7. 20.
[TypeScript] 인터페이스(Interface) 인터페이스란? 내부적으로는 숨겨져 있고, 겉으로만 드러나있는 호출 방식. interface Human1 { name: string; age: number; } function func1(human: Human1): void{ console.log(`반가워요! ${human.name}.`); } const h1: Human1 = { name: "Jack", age: 24, }, func1(h1); optional property interface Human2 { name: string; age?: number; // 있을 수도 있고 없을 수도 있는 것에 ?를 붙임. } function hello(human: Human2): void { console.log(`반가워요. ${human.name}.`); } .. 2022. 7. 19.
[TypeScript] 타입 호환성과 별칭 타입 호환성(Type Compatibility) // sub 타입은 sup 타입의 서브 타입. let sub1: 2 = 2; let sup1: number = sub1; sub1 = sup1; // error Type 'number' is not assignable to type '2'. let sub2: number[] = [3]; let sup2: object = sub2; sub2 = sup2; // error Type '{}' is missing the following properties from type'number[]' let sub3: [number, number] = [3,4]; let sup3: number[] = sub3; sub3 = sup3; //error Type 'number[.. 2022. 7. 18.
[TypeScript] 타입 시스템 Type System 타입 시스템 컴파일러에게 사용하는 타입을 명시적으로 지정. 컴파일러가 자동으로 타입을 추정 타입 스크립트의 Type System 타입을 명시적으로 지정할 수 있음. 타입을 명시적으로 지정하지 않으면 컴파일러가 자동으로 타입을 추론(타입 추론) 타입이 하는 일 // n의 타입을 지정하지 않았으므로 any로 추론됨. // 리턴 타입은 number로 추론(NaN도 Number) function func1(n) { return n * 10; } console.log(func1(5)) //50 console.log(func1('Hello') + 1); // NaN 이런 문제를 해결하기 위해 nonImplicitAny 옵션을 사용하여 TS가 추론 중 'any'라고 판단하면, 에러를 발생시켜 명.. 2022. 7. 18.
728x90
반응형