유니온 제거 질문
interface Dropdown<T> {
value: T;
selected: boolean;
}
const emails: Dropdown<string>[]= [
{ value: 'naver.com', selected: true },
{ value: 'gmail.com', selected: false },
{ value: 'hanmail.net', selected: false },
];
const numberOfProducts: Dropdown<number>[] = [
{ value: 1, selected: true },
{ value: 2, selected: false },
{ value: 3, selected: false },
];
function createDropdownItem<T>(item: Dropdown<T>) {
const option = document.createElement('option');
if (item.value) {
option.value = item.value.toString();
option.innerText = item.value.toString();
}
option.selected = item.selected;
return option;
}
// NOTE: 이메일 드롭 다운 아이템 추가
emails.forEach(function (email) {
const item = createDropdownItem<string>(email);
const selectTag = document.querySelector('#email-dropdown');
selectTag?.appendChild(item);
});안녕하세요! 유니온 제게어 대해서 질문드립니다! 제가 유니온을 제거해 보려고 했는데 createDropdownItem() 함수에서 if 문을 쓰기 전에는 " 'T' 형식에 'toString' 속성이 없습니다 "라고 에러가 떴었는데 if 문을 추가하니 에러 표시가 사라졌습니다. 이렇게 코드를 작성해도 되는 걸까요? 아니면 if 문보다는 이후 강의에서 알려주신 extends로 제네릭을 제한하는 게 더 좋을까요?
답변 1
TSLint
0
104
1
vscode eslint server 오류
0
133
1
안녕하세요. 기본타입- 튜플, 객체, 진위값 부분의 영상의 화면이 나오질 않습니다.
0
105
1
live server 설치 오류
1
451
2
강의 교안 pdf 는 따로 제공하지않나요?
0
329
2
npm i 설치 이유 문의
1
474
3
index.ts Delete `␍`eslintprettier/prettier 오류(빨간줄) 해결
2
339
3
vue 에서 jquery 사용 문제
1
752
2
TSLint 확장 프로그램은 현재 지원하지 않는다고 합니다.
1
548
2
강의 내용처럼 노란 밑줄이 작동하지 않아서 유사 질문들을 실행해보았는데요
1
569
1
section 3-1 JSdoc 타입이 추론되지 않아서 다음과 같이 수정했는데 이거 맞나요?
1
495
2
함수에 리턴 안됐다고 노란밑줄이 쳐져야하는데 없습니다
2
490
1
파일이 다른데 식별자가 중복되었다고 뜹니다.
1
497
2
빨간줄 에러 질문드립니다
1
533
2
마우스 갖다대면 리턴값 설명 나오는 거 질문드려요
1
401
2
js에서 @ts-check 적어도 체크하지 못하는 문제입니다
2
439
2
index.html에서 타입스크립트 콘솔 찍는 법 질문드립니다
1
614
2
섹션 1-3 추론 질문드립니다
1
393
2
왜 api쪽에는 왜 에러가 안나는지 궁금합니다.
1
367
2
const item1을 선언했을 때 타입을 선언해줘도 괜찮을까요?
1
428
1
전화번호부 타입선언
1
309
2
타입을 전역으로 분리
1
633
2
객체 선언 시 구분자는 쉼표, 세미콜론 모두 사용가능한건가요?
1
476
1
Git 관련 질문이 있습니다
1
701
2





