Programming Language/Node.js(24)
-
TypeScript에 대한 간단한 정리 - 09. 함수 - 오버로딩(Overloading)
타입스크립트에서 함수 오버로딩은 동일한 함수 이름으로 여러 가지 다른 형태의 함수 시그니처를 정의할 수 있게 해주는 기능으로 하나의 함수 이름으로 다양한 인자와 반환 값을 처리할 수 있다. 함수 오버로딩에 대해서 알아보기 전에 먼저 함수 시그니쳐에 대해서 알아봐야 하는데 함수 시그니쳐란 함수의 형태를 정의하는 것으로 함수의 이름, 매개변수의 타입, 반환값의 타입에 대해서 미리 정의해서 함수가 어떤 입력을 받고, 어떤 출력값을 반환하는지를 명시해주는 방식을 말한다. 이는 코드에서 발생할 수 있는 타입 오류를 사전에 방지할 수 있는데 함수 시그니쳐를 사용하는 방법은 function 함수명(매개변수1: 타입1, 매개변수2: 타입2): 반환타입;과 같이 선언해주면 된다. 이렇게 함수 시그니처를 선언한다면 이걸 ..
2024.12.20 -
TypeScript에 대한 간단한 정리 - 08. 함수 - 명시적 this 타입
타입스크립트에서는 함수 내부에서 사용되는 this 키워드의 타입을 명시적으로 정의할 수 있다.원래 자바스크립트에서는 함수의 this를 호출 방식에 따라서 동적으로 결정하는데 타입스크립트에서는 이걸 명시적으로 지정해서 호출 할때 this의 타입을 고정 시킬 수 있다. 기본적으로 선언하는 방식은 function 함수명(this: 타입(보통 객체의 타입), ...): ReturnType { // 함수 내용}과 같이 사용한다. 인터페이스에서 this에 대해서 한번 보자면 이렇게 인터페이스를 생성한 다음에 함수에서 이렇게 this를 사용하고 싶다고 생각해보자. 이럴때 사용하는 메서드가 call이란 메서드인데 call메서드는 자바스크립트의 모든 함수에서 사용할 수 있는 메서드로 함수를 호출 할때 첫번째 인자로 객..
2024.12.20 -
TypeScript에 대한 간단한 정리 - 07. 타입 별칭(Alias)
타입 별칭은 타입에 이름을 붙이는 것을 말한다.이 타입 별칭을 사용해서 기본 타입, 복잡한 객체 타입, 유니온 타입등 과 같은 타입을 재사용할 수 있고, 코드의 가독성과 유지보수를 쉽게 할 수 있다. 타입 별칭은 type이란 키워드를 사용해서 정의하고 인터페이스와 비슷하나 더 유연한 방식으로 타입을 표현하여 사용이 가능하다. 타입별칭의 기본적인 문법은 type 별칭명 = 타입;과 같이 사용하고 타입에는 기본타입, 객체타입, 유니온타입, 인터섹션 타입등 어떠한 타입도 들어갈 수 있다. 기본타입에 대해서 별칭을 사용하면 type ID = string;const userId : ID = "testUser";const keyId : ID = "Key123"과 같이 사용이 가능하다. 객체 타입에 대해서 별칭을 사..
2024.12.20 -
TypeScript에 대한 간단한 정리 - 06. 인터페이스 - 인덱싱 가능 타입 , 확장(상속)
인덱싱 가능 타입타입스크립트에서 인터페이스에서 인덱싱 가능 타입은 인덱스 시그니처를 사용하여 객체가 특정 키로 값을 접근할 수 있게 정의하는 방법을 말한다.이를 통해 객체가 특정 타입의 키를 사용해서 접근할 수 있는 값을 가질 수 있게 해준다. 인덱스 시그니처 (Index Signatures) 인덱싱 시그니처는 객체 타입에 대해서 키와 값을 지정하는 문법으로 인터페이스에서 인덱싱 가능 타입을 정의하려면 인덱스 시그니처를 사용한다.이 시그니처는 특정 타입의 키에 대응되는 값을 정의 할 수 있도록 해준다. 인덱싱 시그니처는 인터페이스 내부에 작성하게 되는 부분을 지칭하는데 우선 인덱스 시그니처를 사용해서 생성한 인터페이스의 예시를 한번 보자면 interface IndexingSignature { [k..
2024.12.19 -
TypeScript에 대한 간단한 정리 - 05. 인터페이스 - 기본 , 함수 타입
타입스크립트에서 인터페이스(Interface)란 객체의 구조를 정의하는 타입 시스템의 일부이다.인터페이스를 통해서 객체가 가질 속성과 메서드의 타입을 지정할 수 있도록 한다. 인터페이스를 구성하는 방법은 interface 인터페이스명 { 속성명1: 타입1; 속성명2: 타입2; . . . .}과 같이 선언한다.여기서 해당 속성은 어떤 타입으로 선언되어야 하는지에 대한 설정이 포함되어 있다.그리고 보통 인터페이스 명의 첫글자는 대문자로 파스칼 케이스로 선언을 해준다. 실 사용의 예시로 보자면 이렇게 단순 속성 뿐만 아니라 함수 속성에 대해서도 타입을 지정할 수 있다.이 객체를 사용하는 방법은 const 변수명 : 인터페이스명 = { 속성명1: (속성1 타입에 맞는) 값1, 속성명2..
2024.12.18 -
TypeScript에 대한 간단한 정리 - 04. 타입 및 할당 단언(Assertions)
타입의 단언(Assertion)이란 사용자가 이 값은 내가 특정 타입임을 확신한다라고 컴파일러에게 알려주는 방법이다.이건 컴파일러가 추론한 타입이나 지정한 타입과는 관계 없이 사용자가 원하는 타입으로 강제로 인식하게 하는 역할을 하한다.이는 자바스크립트의 런타입에는 영향을 미치지 않고 컴파일 단계에서만 작동한다. 타입단언의 특징은 컴파일러의 타입 추론을 덮어쓴다 - 컴파일러가 추론한 결과를 무시하고 사용자가 직접 타입을 지정할 수 있다런타임 동작에 영향을 주지않는다 - 컴파일에서만 영향을 주고 런타임 코드에는 반영되지 않기에 런타임에서 오류를 발생시킬 여지가 있다.타입 단언을 사용하는 방식은 크게 두가지 표기법이 있는데 as 키워드를 사용변수명 as 타입으로 타입 단언을 사용할 수 있다.let valu..
2024.12.16