.
본문 바로가기

TypeScript6

type challange <Easy> 취준생을 벗어나 어엿한? 직장인이 되어서 양질의 글쓰기를 하려 했으나 쉽지않다. 그냥 되는대로 공부한거 기록하고 포스팅 하겠다. Pick interface Todo { title: string description: string completed: boolean } type TodoPreview = MyPick const todo: TodoPreview = { title: 'Clean room', completed: false, } 타스에서 기본적으로 제공해주는 유틸리티 타입인 Pick이다. 제너릭 타입에서 뽑고싶은 속성만 뽑는다. 답 type MyPick = { [key in K]: T[key]; } K extends keyof T 는 K가 T 제너릭 타입이 가지고 있는 속성들의 서브타입임을 명시해준다.. 2022. 11. 3.
우아한 타입스크립트 실전 코드 작성하기(2) 오버로딩 흉내내기 ts,js에서는 오버로딩을 지원하지 않는다. 오버로딩이란 같은 메소드 명이라도 변수의 타입, 변수 길이에 따라 다르게 구현하는 것 일단 코드를 보자 function shuffle (value: string | any[]): string | any[] { if (typeof value === 'string') { return value .split('') .sort(() => Math.random() - 0.5) .join(''); } return value.sort(() => Math.random() - 0.5); } const a1 = shuffle('hi mart') // string | any[] const a2 = shuffle(['a','b','c','d','e']); // s.. 2022. 6. 8.
우아한 타입스크립트 실전 코드 작성하기(1) https://www.youtube.com/watch?v=ViS8DLd6o-E 위 영상을 보고 공부한 것을 기록하는 포스트입니다. 제너릭에 따라 조건부 타입 설정하기 interface StringContainer { value: string; } interface NumberContainer { value: number; } type Item1 = { id: T; container: T extends string ? StringContainer : NumberContainer; } 제너릭은 함수나 변수를 호출시 타입이 결정되도록 하는 기능 위 코드에서 T extends string은 제너릭 T가 string 타입에 할당 가능한가? 즉 서브타입이냐에 따라 타입이 결정되도록 삼항연산자를 사용하였다. 하지만 .. 2022. 5. 26.
여러가지 형태의 타입가드 https://www.youtube.com/watch?v=ViS8DLd6o-E&t=3158s 이 게시글은 위 영상에서 타입가드 부분을 정리하고 기록한 것임. 타입 가드는 타입 추론의 범위를 좁혀주는 것. 1. 원시 객체 타입가드 function getNumber(n: number | string):number { // n 2022. 5. 9.
Type vs Interface Type 과 Interface의 차이점은 무엇일까? 써드파티 라이브러리 코드를 보면 가끔 Type 별칭을 쓰는 부분이 있는데 필자는 Interface만 선호(?)해서 둘의 차이점이 무엇인지 알고 싶어졌다. 공식 핸드북에 홈페이지다. https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#differences-between-type-aliases-and-interfaces Documentation - Everyday Types The language primitives. www.typescriptlang.org 일단 요약하자면 타입별칭과 인터페이스는 매우 유사하며, 중요한 차이점은 타입은 새로운 속성을 추가할 수 없다는 것 인터페이스는 항상 .. 2021. 12. 5.
abstract 와 interface 차이점 abstract 와 interface는 언뜻보면 비슷해보인다. 그러나 둘은 명확한 차이가 있기에 차이점을 알아보자. abstract class 추상클래스는 일종의 미완성 설계도이다. 상속을 통하여 인스턴스를 생성할 수 있으며 추상클래스 자체로 인스턴스를 생성할 수 없다. 추상클래스는 abstract 키워드를 붙여서 표현하며 abstract로 선언한 메소드는 자식클래스에서 반드시 구현해야 한다. abstract class Person{ private age:number; private name:string; constructor(a:number, n: string){ this.age = a; this.name = n; } public abstract whereAreyouFrom():void; } // ca.. 2021. 11. 8.