Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- S3
- nodejs
- MongoDB
- 피로그래밍
- 절차지향
- 솝트
- 면접전형
- AWS
- 백준
- Java
- 합격후기
- 서류전형
- 사물인식
- 카카오
- 페이지네이션
- spring-boot
- EC2
- 프로그래머스
- 멋쟁이사자처럼
- 파이썬 #백준 #BFS
- 파이썬
- 솝트 후기
- jwt
- 인공지능
- Python
- jQuery
- objectdetection
- yolov5
- 멋사
- CRUD
Archives
- Today
- Total
찔끔찔끔씩😎
[Sopt] 1차 세미나 - Typescript, Node.js 본문
728x90
Typescript
🔎 Typescript란?
JS 에서 타입 문법 등을 추가한 상위 집합으로 JS와 100% 호환된다.
Typescript의 장점
- 높은 수준의 코드 탐색과 디버깅
- JS와 100% 호환
- 강력한 생태계
🔎 Type
기본적인 데이터 타입
const 변수명: 타입 = 초기값;
let 변수명: 타입 = 초기값;
let isDone: boolean = true;
const name: string = '송';
console.log(name)
let grade: number = 4;
const sum = (x:number, y:number): number =>{
return x*y;
}
배열 데이터 타입
const 변수명: 타입[] = 초기값;
let 변수명: Array<타입> = 초기값;
const ages1: number[] = [1,2,3,4,5];
const ages2: Array<number> = [1,2,3,4];
const objArr: Array<object> = [{ item: 'value' }, { itme: 'value2' }];
Object vs object
Object 는 자바스크립트의 모든 생성자를 extend, 모든 타입에 할당될 수 있다.
object 는 원시 타입을 제외한 나머지를 모두 받을 수 있다.
더보기
원시타입과 객체타입이란?
원시타입
- 메모리에 고정 크기로 값을 저장하고, 해당 저장 값을 변수가 직접 갖고 있음
- Boolean, Null, Undefined, Number, String, Symbol
객체타입
- 크기가 정해져있지 않고 변수 할당 시 데이터 주소만 저장함
- Object
원시타입
- 메모리에 고정 크기로 값을 저장하고, 해당 저장 값을 변수가 직접 갖고 있음
- Boolean, Null, Undefined, Number, String, Symbol
객체타입
- 크기가 정해져있지 않고 변수 할당 시 데이터 주소만 저장함
- Object
const f1 = (obj: object): void =>{
console.log(obj);
}
f1([1,2,3,4]);
// f1('hihi'); -> 오류
const f2 = (obj: Object): void =>{
console.log(obj);
}
f2([1,2,3,4]);
f2('hihi');
함수 타입
리턴 값이 없는 함수는 void 로 명시해준다.
function foo(a:number, b:number): number{
return a+b;
}
const boo = (a:number, b:number): number => {
return a+b;
}
const printHi = (a:string): void =>{
console.log(`${a} hi~`);
}
null vs undefined
null, undefined는 이름 그대로가 타입이다. 해당 타입은 null / undefined 자신 이외의 값 할당이 안된다.
let a: null = null;
let x: null = 2;
// Type '2' is not assignable to type 'null'
let b: undefined = undefined;
let y: undefined = null;
// Type 'null' is not assignable to type 'undefined'.
타입 단언 (Type assertions)
개발자는 자기가 뭘 하고 있는지 알기 때문에, 타스에게 직접 타입을 단언해준다.
// angle-bracket 타입단언
let name3: any = '유';
let name3Length: number = (<string>name3).length; // aka 형변환
// as 타입단언
let name4: any = '송';
let name4Length: number = (name4 as string).length;
any
타입 검사를 하지 않는다. 걍 아무데다가 붙여도 되긴 하는데, 되도록 쓰지 말 것.
🔎 Interface
여러가지 프로퍼티를 갖는 새로운 타입을 정의하는 것.
변수, 함수, 클래스 모두 사용이 가능하다.
선택적 프로퍼티
인터페이스 내부에 필수적이지 않은 프로퍼티는 ? 를 붙여서 표시한다.
interface ServerPart{
name:string;
age: number;
group: string;
mbti?: string[]; // 선택적 프로퍼티!!
}
const serverPart: ServerPart = {
name:'쏭',
age: 5,
group: 'YB',
mbti: ['E','F']
}
'Server > Nodejs' 카테고리의 다른 글
[Sopt] 5차 세미나(1) - Middleware, Authentication, API 명세서 (0) | 2022.05.18 |
---|---|
[Sopt] 4차 세미나(2) - Nodejs API 실습 (0) | 2022.05.18 |
[Sopt] 4차 세미나(1) - AWS EC2, PM2, S3 (0) | 2022.05.17 |
[Sopt] 3차 세미나(2) - NodeJS CRUD 실습✨ (0) | 2022.05.17 |
[Sopt] 3차 세미나(1) - MongoDB, Mongoose, 견고한 NodeJS Project (0) | 2022.05.17 |
Comments