목록전체 글 (90)
coding etude
Ts 기본 셋팅을 진행 후 component를 만들면서 interface 와 type 를 지정하고 tsx에 변수 및 함수를 사용하면 제목과 같은 오류가 발생한다. 이유는 생각보다 간단하다. ESlint의 유효성 검사에서 타입에 대한 내용리 누락 되어서 라고 생각이 된다. typescrip-eslint : github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/prop-types.md 위의 페이지에서 보면 기본 Js 에서 사용하는 방법과 Ts에서 사용해야하는 방법 그리고 진행 흐름에 대한 예시를 볼 수 있다. 그리고 가장 마지막에 .eslintrc.js 파일에 적용하는 옵션값이 나온다. 여러 블로그를 확인했을 때,(위 github 페이지에서도 역시..
TS의 기본적인 문법을 공부하고서, 자!! 이제 React에 적용해보자!! ....두둥.. error.. TS를 사용하기 위해서 설치한 TSlint에서 날 통과 시켜주지 않는 것이였다.. 이것 저것.. 검색을 해본 결과.. 정확하고 속시원하게 알려주는 내용은 없었다. 물론, 내가 못 찾았거나 보고도 이해 못한 내용이였거니 생각하니... 더 답답했다. 그러던 중, ESlint까지 내용이 이어졌는데.. typescript-ESlint Github 를 보고 잊지 않기 위해 끄적끄적... 먼저, typescript-ESlint Github에 따르면 TSlint는 2019년에 더이상 개발을 지원하지 않겠다고 선언했다고 한다. ESlint에서 TS를 지원하기 시작해서 불필요 하다고 생각했기 때문이다. 또한, typ..
문제 정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 리턴해야 합니다. 입력 인자 1 : arr number 타입을 요소로 갖는 배열 arr[i]는 정수 arr[i]의 길이는 1,000 이하 출력 number 타입을 요소로 갖는 배열을 리턴해야 합니다. 배열의 요소는 오름차순으로 정렬되어야 합니다. arr[i] [1, 2, 3] Advanced 수행 시간을 단축할 수 있도록 코드를 수정해보세요. 어떤 요소도 위치가 바뀌지 않은 경우, 배열이 정렬된 상태라는 것을 알 수 있습니다. 풀이 let bubbleSort = (arr) => { let temp for(let i=0; i < arr.length; i++){ let count = 0; // 자리가 바뀔때 카운트를 하는데 만약 끝까지 0이라면 ..
Interface Ts에서 가장 핵심적인 원칙 중 하나는 타입의 형태에 초점을 둔 타입 검사 라는 것이다. interface 는 이런 타입들의 이름을 짓는 역할 및 코드의 내/외부에서 행동을 정의 하는 강력한 방법이다. interface 는 각 속성에 타입을 정의한 후 다른 요소의 타입으로 정의 하여 사용 할 수 있다. Optional properties : Ts의 인터페이스를 사용 할때 정의된 요소를 모두 인자로 사용해야 한다. 하지만, 위의 예시 처럼 요소의 뒤에 ?를 사용하게 되면 선택적으로 사용 할 수 있게 된다. 선택적 속성의 이점은 인터페이스에 속하지 않는 프로퍼티의 사용을 방지하면서, 사용 가능한 속성을 기술하는 것입니다. Excess property checks : 선택적 속성을 사용하여 ..
문제 두 개의 배열(base, sample)을 입력받아 sample이 base의 부분집합인지 여부를 리턴해야 합니다. 입력 인자 1 : base number 타입을 요소로 갖는 임의의 배열 (base.length false base = [10, 99, 123, 7]; sample = [11, 100, 99, 123]; output = isSubsetOf(base, sample); console.log(output); // --> false Advanced 시간 복잡도를 개선하여, Advanced 테스트 케이스(base, sample의 길이가 70,000 이상)를 통과해 보세요. 풀이 // 포함이 되어 있는지 여부만 확인 시 // every, includes 를 사용해서 구할 수 있다. const isSu..
문제 아래와 같이 정의된 피보나치 수열 중 n번째 항의 수를 리턴해야 합니다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1입니다. 그 다음 2번째 피보나치 수부터는 바로 직전의 두 피보나치 수의 합으로 정의합니다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... 인자 1 : n number 타입의 n (n은 0 이상의 정수) 출력 number 타입을 리턴해야합니다. 주의사항 재귀함수를 이용해 구현해야 합니다. 반복문(for, while) 사용은 금지됩니다. 함수 fibonacci가 반드시 재귀함수일 필요는 없습니다. //문제 풀이 // fibonacci = (n-1) + (n+2) // 기본적으로 직전의 수와 그 전의 수를 더하면 현재의 수가 나오는 공식이 성립. //..
Typescript(이하 Ts)는 MS 사에서 만든 오픈 소스 프로그래밍 라이브러리 이다. Ts를 배우기 위해서는 기본적으로 Javascript(이하 Js)에 대한 이해가 필요하다. Ts는 Js에서 각 변수와 함수에 type 을 정의하여 더 정확하고 유지 보수가 쉽게 만들어준다. 또한, interface와 class를 사용하여 재사용이 쉬워지는 효과도 가지고 있다. 더 자세한 기본적 개념 설명은 다음 기회에 상세히 포스팅 하도록 하고, 오늘은 Ts의 기본 타입에 대해 알아보겠다. 기본적인 개념은 Js 타입에서 조금 더 확장되었다고 생각하면 될 것 같다. Js 기본타입 : string, number, boolean, (null, undefined), array Ts 추가된 타입 : tuple, enum, ..
TS 를 공부하던 중 블록체인을 만드는 과정을 TS로 구현하는 방법을 봤는데 어렴풋이 알고 있던 블록체인의 개념을 조금 더 선명하게 만들기 위해서 이것 저것 알아봤는데.. 기본 개념은 단순하지만 구현은 어렵다는 결론... 평소에 자주 듣던.. 먼저 만들어둔 형들이 많으니.. 그냥 형들꺼 가져다 쓰라는 명언이 생각 난다. 블록체인? 블록 체인이란 무엇일까?? 말 그대로 블록들이 체인형태로 연결 되어 있는 Linked List 구조의 자료 구조라고 할 수 있다. 다시 말해 가장 처음 생성된 블록에서 부터 마지막에 생성된 블록까지 모두 연결되어 있고 여러개의 블록이 마치 하나의 체인처럼 연결되는 구조라고 할 수 있다. 즉, 수만 건의 거래내역을 하나로 묶은 블록체인은 여러 저장소에 분산되어 관리되는 거대한 분..