본문 바로가기
C++ 200제/코딩 IT 정보

TypeScript 7031 바인딩 요소 '인자' 암시적으로 any 형식이 있습니다

by vicddory 2019. 11. 19.

아래처럼 typescript를 선언할 때 발생하는 에러입니다.


함수 ({obj1, obj2} : {obj1 : 임의, obj2 : 임의}) {...}




해결하기 위한 여러가지 방법이 있는데, 몇 가지 소개하겠습니다.


먼저, 타입스크립트 interface, type 사용하여 actions 액션 인자를 정의하는 방법입니다.


interface Options {

test_var: string;
payload?: BigInt;
}

type myType = {
test_var: string;
payload: BigInt;
};

const actions = {
TEST({ test_var, payload }: { test_var: string; payload?: BigInteger }) {},

TEST2({ test_var, payload }: Options) {},

TEST3({ test_var, payload }: myType) {},

TEST4(test_obj: { a: string; b?: number }) {
let { a, b = 1001 } = test_obj;
},



const actions를 보면 TEST~TEST4까지 인자를 미리 정의한 인터페이스와 타입으로 typescript 자료형을 정의합니다.


let 역시 위와 비슷한 방법으로 정의할 수 있습니다.


let { a: var1, b: var2 } = o;


let 객체 o를 선언합니다. 그리고 개별 let 변수에 o의 값을 할당합니다.


let var1 = o.a;
let var2 = o.b;


다른 let 객체에도 o를 이용할 수 있습니다.


let { a, b }: { a: string, b: number } = o;



예전 타입스크립트 자료 찾아보니 버그라는 글이 봤습니다. 근데, 버그 아닙니다.

댓글