SPACE RUMI

Hi, I am rumi. Let's Splattack!

typescript 4

No index signature with a parameter of type 'string' was found on type | 문자열 인덱싱 시그니처 타입에러

key로 직접 접근할때 종종 만날수있는 타입에러 해결방법 1 : 애니추가 [key: string]: any; // 를 추가하거나, 해결방법 2 : key as key of let payload: TestDTO = {}; for (const key in data) { if (data[key]) { payload[key as keyof TestDTO] = data[key]; } } keyof는 객체의 속성 이름들 중 하나를 나타내는 문자열 유니온 타입을 생성한다.

TypeScript utility type / 타입스크립트 유틸리티 타입

Partial T의 모든 프로퍼티를 옵셔널로 만드는 타입. interface Product{ id: number; name: string; } const updateProduct(product:Product, updateProduct:Partial){ return {...product, ...updateProduct}; } const product1 = { id:1; name:'new desk'; } const product2 = updateProduct(product1, {name:'old desk'}); updateProduct 함수는, 첫번째 매개변수를 두번째 매개변수로 덮어씌우는 함수다. product2는 product1에 name을 'old desk' 로 변경했다. 는 인 셈이다. Readonl..

[Typescript] 타입스크립트 함수 타입 / function type

함수 타이핑 const typeFunc = (x: number, y: number): number => { return x + y; } 인자로 들어올 x, y의 타입과 반환타입을 선언해줄 수 있다. 반환되는 값의 타입은 return문을 보고 추론할 수 있으므로 생략이 가능하다. 전체 타입 작성하기 let allTypeFunc: (a: number, b: number) => number = function(x: number, y: number): number { return x + y; }; let noTypeFunc = function(x, y){return x+y}; 위 코드를 보면 allTypeFunc 변수는 number 타입을 가진 a와 b를 인자로 받고, number를 리턴해주는데, 이걸 함수에 ..

[TypeScript] 타입스크립트 인터페이스 / typescript interface / typescript readonly / interface extends

인터페이스 (interface) interface ProductModel { // 인터페이스 선언 id: number; } // productModel 인터페이스를 타입으로 갖는 product 객체를 받아 콘솔로 찍음 const printProduct = (product: ProductModel) => { console.log(product); }; let myProduct = { id: 10, productName: "my first product" }; printProduct(myProduct); // {id: 10, productName: "my first product"} 인터페이스는 정의된 프로퍼티가 있는지와, 이 프로퍼티의 타입이 맞는지만 검사한다. 정의되지 않은 프로퍼티는 검사하지 않고, 프..

반응형