일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- concurrency limit
- Deep Dive
- 타입스크립트
- 음악 url 파일 다운로드
- 코멘토 #코멘토실무PT #실무PT후기 #실무강의 #리액트강의 #웹프로그래밍 #react #웹개발실무
- compateto
- 우아한테크코스
- redis
- 프로그래머스
- invalid_grant
- this
- TypeORM
- oauth
- 프론트엔드 과제
- 프론트엔드
- NestJS
- 자바스크립트
- 프리코스
- 딥다이브
- 스프링부트
- 유효시간 설정 url
- 모던 자바스크립트
- Dev-Matching
- AWS
- 우아한 테크코스
- api 요청 수 제한
- bucket4j
- 검색
- 파일 url
- api 비동기처리
- Today
- Total
목록웹 (68)
개발 알다가도 모르겠네요
TS2532: Object is possibly 'undefined'. 또는 변수를 함수에 넘기고자 할 때 function validateToken(token: string) { return token; } const token = 'kjadj' as string | undefined; validateToken(token); 아래와 같은 Typescript 에러 메시지가 발생한 적이 있을 것이다. TS2322: Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. 이러한 에러가 발생하는 이유는 typescript가 예상하고 있는 특정한 type이 아닌, ..
1. 설치 # typescript를 사용하실 분들은(권장) **$ npx create-react-app 서비스이름 **--template typescript** # javascript를 사용하실 분들은 $ npx create-react-app 서비스이름 #eslint: 코드 검사 도구 (안쓰는 변수, 오타 잡아줌) yarn add -D eslint //yarn add eslint --save-dev npx eslint --init //eslint 초기화 설정 #prettier: 코드 정렬도구 yarn add -D prettier eslint-plugin-prettier eslint-config-prettier yarn add eslint-import-resolver-typescript -D tsconfi..
class User { // class내에 정의된 변수는 property 프로퍼티 라고 부른다. private _name: string; age: number; address: string; constructor(name: string, age: number, address: string) { this.name = name; this.age = age; this.address = address; } // getter get name () { return this._name; } //setter set name () { this._name = value; } printUserInfo = (): void => { console.log(`${name}의 나이는 ${age}이고 사는 곳은 ${address}입니..
Slice() slice()는 배열 메서드로 원하는 부분을 복사하고 새로운 배열로 리턴. 배열을 변경하지 않는 것이 핵심. let bread=['loaf1','loaf2','loaf3','loaf4','loaf5','loaf6']; newArr=bread.slice(2,5); //output:["loaf3", "loaf4", "loaf5"] Splice() Splice() 또한 배열 메서드로 배열에 원하는 엘리먼트 갯수를 추가하거나 제거할 수 있음. 이는 기존 배열에 변이를 줌. 제거만 할 경우 let bread = ['loaf1','loaf2','loaf3','loaf4','loaf5','loaf6']; bread.splice(1, 3); ["loaf2", "loaf3", "loaf4"] //outpu..
타입 앨리어스는 새로운 타입을 정의합니다. interface Person { name: string, age?: number } // 빈 객체를 Person 타입으로 지정 const person = {} as Person; person.name = 'Lee'; person.age = 20; person.address = 'Seoul'; // Error 타입 앨리어스도 인터페이스와 마찬가지로 타입으로 사용할 수 있습니다. // 타입 앨리어스 type Person = { name: string, age?: number } // 빈 객체를 Person 타입으로 지정 const person = {} as Person; person.name = 'Lee'; person.age = 20; person.address..
Developer과 Person이라는 인터페이스를 설정하고 함수에 두 인터페이스를 유니온 방식으로 정의해주면, interface Developer { name:string; skill:string; } interface Person { name:string; age:number; } function introduce(): Developer | Person { return { name : 'Tony', age : 33, skill: 'Iron Marking'} } let tony = introduce(); console.log(tony.skill); // error 함수를 tony 변수에 할당한뒤 정의해준 속성 skill을 출력했을때 접근하지 못하고 에러가 발생합니다. 유니온 속성은 공통된 속성에만 접근할..
let bool = true; const arr = [1, 2, 3]; const tuple = [true, 1]; bool = 1; // Error! 아래의 tuple 변수는 배열의 요소가 각각 boolean과 number이기에 최종적으로 추론되는 타입은 boolean과 number의 유니온 타입의 배열, 코드로 나타내면 (boolean | number)[]이 됩니다. 여기에서 배열에서 사용된 요소들의 타입을 각각 추론하여 유니온 타입으로 만들어 내는 방식을 Best common type이라고 부릅니다. Best common type Best common type 은 말 그대로 가장 일반적인 타입입니다. 여러가지 자료형이 배열 내부에서 사용되고 있을 때, 그 여러가지 자료형을 포괄할 수 있는 가장 일반..
TypeScript에서는 enum을 사용하는 것이 가능합니다. enum Color { RED, GREEN, BLUE } 선언 후에 아래와 같이 사용할 수 있습니다. function setColor(color: Color) { // ... } setColor(Color.RED); var Color = { RED: 0, GREEN: 1, BLUE: 2, 0: 'RED', 1: 'GREEN', 2: 'BLUE' }; enum 키워드는 기본적으로 리버스 매핑(reverse mapping)을 지원합니다. 리버스 매핑이란 키로 값을 얻을 수 있을 뿐만 아니라, 값으로도 키를 얻을 수 있는 방식을 말합니다. 선언과 값 초기화 enum으로 만들어진 변수에는 내부적으로 값이 할당됩니다. 별도의 명시가 없다면 값은 0부터..
function add(x: number, y: number): number { return x + y; } let myAdd = function(x: number, y: number): number { return x + y }; 각 파라미터와 함수 자신의 반환될 타입을 정해줄 수 있습니다. TypeScript는 반환 문을 보고 반환 타입을 파악할 수 있으므로 반환 타입을 생략할 수 있습니다. 함수 타입 작성 let myAdd: (x: number, y: number) => number = function(x: number, y: number): number { return x + y; }; 함수의 타입은 매개변수, 반환 타입이 있습니다. 전체 함수 타입을 작성하고자 한다면 이 두 가지 타입이 필요합니..
TypeScript는 인터페이스를 지원하는데 일반적으로 타입 체크를 위해 사용되며 변수, 함수, 클래스에 사용할 수 있습니다. 인터페이스는 선언된 프로퍼티 또는 메소드의 구현을 강제하여 일관성을 유지할 수 있도록 하는 것입니다. 인터페이스는 프로퍼티와 메소드를 가질 수 있다는 점에서 클래스와 유사하나, 직접 인스턴스를 생성할 수 없고 모든 메소드는 추상 메소드입니다. 단, 추상 클래스의 추상 메소드와 달리 abstract 키워드를 사용하지 않습니다. // 인터페이스의 정의 interface Todo { id: number; content: string; completed: boolean; } let todos: Todo[] = []; // 파라미터 todo의 타입으로 Todo 인터페이스를 선언하였다. f..