전체 글 36

다트[Dart] | Dart 기본(2) - List, Set, Map, String interpolation

Dart 공식문서와 노마드코더 Dart 시작하기 강의를 보고 내용을 정리하였습니다. List 리스트를 정의하는 방법은 두가지이다. 1. var void main() { var numbers = [1, 2, 3, 4]; } 2. 타입 명시 아래 코드는 int 타입으로 이루어진 List라는 의미이다. void main() { List nums = [1, 2, 3, 4]; } 만약 int로 이루어진 List라고 정의를 한 뒤 다른 타입을 추가하려고 하면 오류가 발생한다. 같은 타입의 자료형만 추가할 수 있다. void main() { var numbers = [1, 2, 3, 4]; numbers.add('jea'); // Error: The argument type 'String' can't be assig..

타입스크립트[TypeScript] | 인터페이스 vs Type alias

🔍 글을 시작하기 전에 해당 글은 타입스크립트 프로그래밍 책과 유데미 타입스크립트 강의를 공부하여 정리한 글입니다. 수정해야 할 부분이 있다면 언제든지 알려주세요! 인터페이스 인터페이스는 객체의 구조(형태)를 설명한다. 타입을 작성하고 값을 할당하려고 하면 인터페이스는 이니셜라이져를 사용할 수 없다는 에러메시지가 뜬다. 이를 통해 인터페이스는 구체적인 값이 있는 구조가 아니라, 객체의 구조를 정의하는 것이라고 할 수 있다. 타입 별칭 vs 인터페이스 1) 기본 구조 // 타입 별칭 type Sushi = { calories: number salty: boolean tasty: boolean } // 인터페이스 interface Sushi { calories: number salty: boolean tas..

다트[Dart] | Flutter가 Dart를 사용하는 이유 + Dart 기본(1)

Dart 공식문서와 노마드코더 Dart 시작하기 강의를 보고 내용을 정리하였습니다. Dart 개요 Dart로 개발을 하면 다양한 방법으로 코드를 실행할 수 있다. 웹 플랫폼 개발 웹을 대상으로 하는 앱의 경우 웹 컴파일러는 Dart를 JavaScript로 변환한다. 기본 플랫폼 개발 모바일 및 데스크탑을 대상으로 하는 앱의 경우 JIT(Just In Time) 기능이 있는 Dart VM, 기계어로 변환하기 위한 AOT(Ahead of Time) 컴파일러를 제공한다. JIT, AOT는 프로그래밍 언어의 소스 코드를 컴파일하여 기계어 코드로 변환하는 과정 중 하나이다. - JIT: 개발할 때 사용된다. 코드의 결과를 바로 반영하여 보여준다. (Next.js에서 파일 수정 후 저장하면 바로 반영되는 것과 같은..

타입스크립트[TypeScript] | 4장 연습 문제

1. TypeScript가 추론하는 함수의 타입 시그니처 부분은 무엇입니까? 매개변수, 반환 유형 또는 둘 다? 반환 유형을 추론한다. 함수가 콜백함수여서 TS 컨텍스트에서 추론할 수 있는 경우엔 매개변수의 유형을 추론하기도 한다. 2. 자바스크립트의 인수 객체는 타입에 안전한가요? 그렇지 않다면 무엇을 대신 사용할 수 있습니까? 안전하지 않다. 나머지 매개변수를 대신 사용할 수 있다. function f() { console.log(arguments) } function f(...args: unknown[]) { console.log(args) } 3. 기존 reserve 함수에 시작 날짜가 현재인 휴가를 예약하는 기능을 추가하여 구현하자. (세 번째 호출 시그니처 추가 및 reserve 구현 갱신) ..

타입스크립트[TypeScript] | 제네릭(Generic) 제약조건 설정하기

🔍 글을 시작하기 전에 해당 글은 타입스크립트 프로그래밍 책과 유데미 타입스크립트 강의를 공부하여 정리한 글입니다. 수정해야 할 부분이 있다면 언제든지 알려주세요! T extends type 전달받은 두 개의 객체를 하나로 합치는 함수를 구현해 보자. function merge(objA: T, objB: U) { return Object.assign(objA, objB); } 코드 실행은 잘 되지만, 에러가 발생하는 것을 확인할 수 있었다. 에러는 return 문에서 assign메서드에 전달되는 objA에서 발생했는데, 다음과 같은 오류가 발생했다. (더 보기를 누르면 발생한 오류 문구를 확인할 수 있어요.) 더보기 No overload matches this call. Overload 1 of 4, '..