묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결타입스크립트 입문 - 기초부터 실전까지
ts2345
제가 강의를 따라하면서 코드를 아래처럼 작성했습니다interface PhoneNumberDictionary { [home: string]: { num: number; }; } interface Contact { name: string; address: string; phones: PhoneNumberDictionary; } // api // TODO: 아래 함수의 반환 타입을 지정해보세요. function fetchContacts(): Promise<Contact[]> { // TODO: 아래 변수의 타입을 지정해보세요. const contacts = [ { name: "Tony", address: "Malibu", phones: { home: { num: 11122223333, }, office: { num: 44455556666, }, }, }, { name: "Banner", address: "New York", phones: { home: { num: 77788889999, }, }, }, { name: "마동석", address: "서울시 강남구", phones: { home: { num: 213423452, }, studio: { num: 314882045, }, }, }, ]; return new Promise((resolve) => { setTimeout(() => resolve(contacts), 2000); }); } setTimeout(() => resolve(contacts), 2000); 여기서 contacts에서 에러가 나는데 Argument of type '({ name: string; address: string; phones: { home: { num: number; }; office: { num: number; }; studio?: undefined; }; } | { name: string; address: string; phones: { home: { num: number; }; office?: undefined; studio?: undefined; }; } | { ...; })[]' is not assignable to parameter of type 'Contact[] | PromiseLike<Contact[]>'. Type '({ name: string; address: string; phones: { home: { num: number; }; office: { num: number; }; studio?: undefined; }; } | { name: string; address: string; phones: { home: { num: number; }; office?: undefined; studio?: undefined; }; } | { ...; })[]' is not assignable to type 'Contact[]'. Type '{ name: string; address: string; phones: { home: { num: number; }; office: { num: number; }; studio?: undefined; }; } | { name: string; address: string; phones: { home: { num: number; }; office?: undefined; studio?: undefined; }; } | { ...; }' is not assignable to type 'Contact'. Type '{ name: string; address: string; phones: { home: { num: number; }; office: { num: number; }; studio?: undefined; }; }' is not assignable to type 'Contact'. Types of property 'phones' are incompatible. Type '{ home: { num: number; }; office: { num: number; }; studio?: undefined; }' is not assignable to type 'PhoneNumberDictionary'. Property 'studio' is incompatible with index signature. Type 'undefined' is not assignable to type '{ num: number; }'.ts(2345)라고 뜹니다 제가 잘못 따라한게 있을가요?
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
권한 요청 부탁드립니다.
인프런 아이디 : stomboy2@naver.com인프런 이메일 : stomboy2@naver.com깃헙 아이디 : tyo1012@naver.com깃헙 Username : Five-Sun
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
i 태그 사용 시 click event 안먹는 이유
안녕하세요. 강의 들으면서 하나하나 따라했는데 i태그 사용하여 v-on:click 시, 클릭이벤트가 전혀 먹히지 않아 일단 span태그로 감싸 사용했습니다. 강사님은 i태그만 사용해도 이벤트가 적용 되는데 왜 안되는지 이유를 알 수 있을까요?제 코드는 아래에 있습니다. <template> <div> <ul> <li v-for="(todoItem, index) in todoItems" v-bind:key="todoItem.item" class="shadow" > <span v-on:click="toggleComplete(todoItem, index)"> <i class="checkBtn fas fa-check" v-bind:class="{ checkBtnCompleted: todoItem.completed }" ></i> </span> <span v-bind:class="{ textCompleted: todoItem.completed }"> {{ todoItem.item }} </span> <span class="removeBtn" v-on:click="removeTodo(todoItem, index)" > <i class="fa-regular fa-trash-can"></i> </span> </li> </ul> </div> </template> <script> export default { data: function () { return { todoItems: [], }; }, methods: { removeTodo: function (todoItem, index) { localStorage.removeItem(todoItem); this.todoItems.splice(index, 1); }, toggleComplete: function (todoItem, index) { todoItem.completed = !todoItem.completed; localStorage.removeItem(todoItem.item); localStorage.setItem(todoItem.item, JSON.stringify(todoItem)); }, }, created: function () { if (localStorage.length > 0) { for (let i = 0; i < localStorage.length; i++) { localStorage.getItem(localStorage.key(i)); this.todoItems.push( JSON.parse(localStorage.getItem(localStorage.key(i))) ); } } }, }; </script> <style scoped> ul { list-style-type: none; padding-left: 0px; margin-top: 0; text-align: left; } li { display: flex; min-height: 50px; height: 50px; line-height: 50px; margin: 0.5rem 0; padding: 0 0.9rem; background: white; border-radius: 5px; } .removeBtn { margin-left: auto; color: #de4343; } .checkBtn { line-height: 45px; color: #62acde; margin-right: 5px; } .checkBtnCompleted { color: #b3adad; } .textCompleted { text-decoration: line-through; color: #b3adad; } </style>
-
미해결풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
자료 이메일 요청건
안녕하세요, 어제부터 본격적으로 잔재미 코딩님의 강의를 수강 중입니다.공부 중에 강의 자료가 있으면 혼자 복습하는데 좋을 것 같아서 요청드리고자 합니다. 이메일 : minhwa0819@naver.com 확인 감사합니다~
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
index.html 이 프로젝트에 영향을 못끼치는 것 같습니다
안녕하세요 강사님. 항상 좋은 강의 만들어 주셔서 감사합니다. 강의 따라서 하던중에 아이콘이 잘 그려지지 않아 원인 분석중 이상한 부분이 있어 질문 드립니다.fontawesome , 파비콘 등 index.html에 링크태그를 사용해 다운로드 하게끔 했는데 아예 다운로드가 안되고 있는것 같습니다.1.index.html2.개발자 도구 네트워크원래대로면 네트워크에 다운로드 하는 부분(index.html에 선언한 link태그의 url)이 있지않나요...? 3.모의 테스트인식이 되는지를 확인하기위해 테그밖에 아무글자나 넣어서 에러가 나게끔 했으나 서버는 정상 기동이 됩니다.... ㅠㅠ 해당 문제에 해결 방안을 알려주시면 감사하겠습니다!!추가로 index.html이 어느 부분에 import?되는건지 알고싶습니다. 감사합니다.
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
github 권한 요청드립니다.
인프런 아이디 : @dlehdgus6251 인프런 이메일 : qorgus1223@naver.com 깃헙 아이디 : dlehgus6251@naver.com 깃헙 Username : dong-hyeon
-
미해결타입스크립트 입문 - 기초부터 실전까지
첫 번째 프로젝트 중 노란색 선
안녕하세요 선생님! 선생님의 강의에서는 함수들마다 노란선들이 있는데 저는 eslint를 설치했는데도 노란선이 없어서 왜그런지 여쭤봅니다! 함수에 커서를 가져다대었을 때 따로 :void를 주지않아도 이미 기본값으로 들어가있는것 때문일까요??그리고 오히려 todos에 파란선이 나옵니다ㅠㅠ
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
강의자료 요청
안녕하세요 선생님. 강의자료 제공 가능할까요?
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
github 권한 부탁드립니다!!
인프런 아이디 : clcc001@naver.com인프런 이메일 : clcc001@naver.com깃헙 아이디 : westofsky159@gmail.com깃헙 Username : westofsky
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
아이콘의 경우 새로 고침해야지 checkBtnCompleted가 적용됩니다
<template> <div> <ul> <li v-for="(todoItem, index) in todoItems" v-bind:key="todoItem.item" class="shadow"> <span v-on:click="toggleComplete(todoItem, index)"> <i class="checkBtn fas fa-check" v-bind:class="{ checkBtnCompleted: todoItem.completed }"></i> </span> <span v-bind:class="{ textCompleted: todoItem.completed }">{{ todoItem.item }}</span> <span class="removeBtn" v-on:click="removeTodo(todoItem, index)"> <i class="fas fa-trash-alt"></i> </span> </li> </ul> </div> </template>i 태그를 span 안에 넣은 이유는 클릭해도 아무 반응이 없어서 span 안에 넣었습니다.completed 관련한 v-bind는 새로고침 안해도 바로 반영되는데 checkBtnCompleted 관련한 v-bind는 새로고침 해야지 체크표가 회색으로 변합니다.어디가 문제인지 모르겠습니다
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
github 권한 요청 드립니다
인프런 아이디 : devdh.cho@samsung.com인프런 이메일 : devdh.cho@samsung.com깃헙 아이디 : rhsnfl1122깃헙 Username : JoDongHyuen
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
왜 발생하는 걸까요??Property or method "store" is not defined on the instance but referenced during render.
Todo-Header.vue 파일에 코딩된 내용은 아래와 같습니다.<template> <header> <!-- <h1>TODO it!</h1>--> <h1>{{ this.$store.state.headerText }}</h1> </header> </template>위 코드를 실행했을때 store 못 찾는 다고 나오는데 이유를 모르겠네요 ㅠ.ㅠ[Vue warn]: Property or method "store" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property. See: https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.found in---> <TodoHeader> at src/components/TodoHeader.vue<App> at src/App.vue<Root>
-
미해결풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
선생님 익스는 사라지지 않았나요?
선생님 익스플로러는 사라지지 않았나요?모던 HTML/CSS/VanillaJS+ES6 로 상용화도 가능한 반응형 모던 웹페이지 만들기6 이번 강의 들어야 되는지.. 헷갈리네요.오직 익스 호환성을 위한거라면.. 그냥 스킵해도 되나요?
-
미해결프로젝트로 배우는 React.js
toastSlice를 store에등록할 때 질문있습니다.
안녕하세요~ 강의 71강 5분 20초쯤toastSlice에서 export default toastSlice.reducer; 로 내보냈는데요.이걸 store에 등록할때, import toastReducer from './toastSlice' toastSlice가 아닌 toastReducer로 이름이 변경된것인가요? 강의처럼 이름을 마음대로 변경해서 가져오고 경로만 맞으면 되는건가여?
-
미해결타입스크립트 입문 - 기초부터 실전까지
ts language server 업데이트 방법이있나요??
"함수 타입- 파라미터를 제한하는 특성" 강의에서 , 강사님이 js 파일과 ts파일 왔다갔다하니까 해결하셨던데 단축키라던가 쓰신건지 궁금합니다.
-
미해결프로젝트로 배우는 React.js
PropTypes 설정
PropTypes를 사용하실 때BlogList.propTypes = { isAdmin: bool }; 이런식으로 하단에 PropTypes 키워드를 사용 안하실 때도있고상단에 PropTypes를 import안하실때도 있으시고..BlogList.propTypes = { isAdmin: propTypes.bool, }; PropTypes를 소문자 p 로 propTypes라고 적용하실때도 있는데 이 경우는 그렇게 엄격하지 않은가요?
-
미해결프로젝트로 배우는 React.js
Cancel 버튼
안녕하세요. 수정페이지 폼 4 강의에서Cancel 버튼 클릭 시 goBack 함수에서 사용하신const goBack = () => { if (editing) { navigate(`/blogs/${id}`); } else { navigate('/blogs'); } };대신에const goBack = () => {navigate(-1);}-1 로 뒤로가기를 하면 문제점이 있을까요?
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
블로그 git 공유
Todo 앱 구현부분을 Option API와 Composition API 비교 용도로 참고하여 블로그 글을 쓰고 싶은데, 참조로 넣고 해당 소스를 조금 수정하여 사용하여도 될지 질문드립니다. 예제가 너무 좋아서 꼭 이 예제로 글을 써보고 싶습니다ㅠㅠhttps://github.com/pijoh3/Todo선생님 강의를 듣고 Vue3.0 버전에 맞춰 수정 및 브랜치를 따서 Composition API로 변경해볼 예정입니다.
-
미해결타입스크립트 입문 - 기초부터 실전까지
제네릭 관련 질문입니다!
저는 라이브러리 개발자와 사용자 관점에서 생각을 해보았는데요 라이브러리를 만든 개발자가 라이브러리 사용자가 어떤 객체를 넣을지, 어떤 값을 모르기 때문에 일일이 모든 타입에 대응이 어려운 경우에 제네릭을 활용하여 라이브러리를 개발하는 것이 좋다라고 생각을 하고 있는데 이런 관점에서 생각하는 것도 좋은 방법일까요?즉, 타입주도권을 사용자한테 준다는 개념으로 생각을 해보았습니다.
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
GITHUB 권한 요청 드립니다.
안녕하세요.권한 주셨다고 하셨는데 404로 접근이 되지 않아 아래 정보로 권한 재요청 드립니다.감사합니다.인프런 아이디 : hyoarang@naver.com인프런 이메일 : hyoarang@naver.com깃헙 아이디 : hyoarang깃헙 Username : songsong