TypeScript

μ œλ„€λ¦­(Generic)μ΄λž€?Cλ‚˜ μžλ°” 같은 정적 μ–Έμ–΄μ—μ„œ λ‹€μ–‘ν•œ νƒ€μž… 간에 μž¬μ‚¬μš©μ„±μ„ 높이기 μœ„ν•΄ μ‚¬μš©ν•˜λŠ” 문법이닀. νƒ€μž…μŠ€ν¬λ¦½νŠΈλ„ 정적 νƒ€μž…μ„ κ°€μ§€λ―€λ‘œ μ œλ„€λ¦­ 문법을 μ§€μ›ν•œλ‹€.μ œλ„€λ¦­μ˜ 사전적 μ˜λ―ΈλŠ” 일반적인 것(general)을 λœ»ν•˜λŠ”λ°, νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ μ œλ„€λ¦­λ„ 이와 λΉ„μŠ·ν•˜κ²Œ 'μΌλ°˜ν™”λœ 데이터' νƒ€μž…μ΄λΌ λ³Ό 수 μžˆλ‹€.μ œλ„€λ¦­: ν•¨μˆ˜, νƒ€μž…, 클래슀 λ“±μ—μ„œ λ‚΄λΆ€μ μœΌλ‘œ μ‚¬μš©ν•  νƒ€μž…μ„ 미리 정해두지 μ•Šκ³  νƒ€μž… λ³€μˆ˜λ₯Ό μ‚¬μš©ν•΄μ„œ ν•΄λ‹Ή μœ„μΉ˜λ₯Ό λΉ„μ›Œ λ‘” λ‹€μŒμ—, μ‹€μ œλ‘œ κ·Έ 값을 μ‚¬μš©ν•  λ•Œ μ™ΈλΆ€μ—μ„œ νƒ€μž… λ³€μˆ˜ μžλ¦¬μ— νƒ€μž…μ„ μ§€μ •ν•˜μ—¬ μ‚¬μš©ν•˜λŠ” 방식-> μ΄λ ‡κ²Œ ν•˜λ©΄ ν•¨μˆ˜, νƒ€μž…, 클래슀 λ“± μ—¬λŸ¬ νƒ€μž…μ— λŒ€ν•΄ ν•˜λ‚˜ν•˜λ‚˜ λ”°λ‘œ μ •μ˜ν•˜μ§€ μ•Šμ•„λ„ 되기 λ•Œλ¬Έμ— μž¬μ‚¬μš©μ„±μ΄ 크게 ν–₯μƒλœλ‹€.νƒ€μž… λ³€μˆ˜λŠ” 일반적으둜 와 같이 κΊΎμ‡ κ΄„ν˜Έ 내뢀에..
였늘 λ‚ μ§œ, ν˜„μž¬ μ‹œκ° κ°€μ Έμ˜€κΈ° const getDefaultDate = () => { const today = new Date(); const year = today.getFullYear(); const month = (today.getMonth() + 1).toString().padStart(2, '0'); const day = today.getDate().toString().padStart(2, '0'); const hours = today.getHours().toString().padStart(2, '0'); const minutes = today.getMinutes().toString().padStart(2, '0'); const seconds = today.getSeconds().toStrin..
interface IDownloadExcelParams { responseType?: ResponseType; } const fileAPI = { downloadExcel: (params: IDownloadExcelParams) => { return JSON.get(`file/excel`, params); }, } API μ •μ˜ λΆ€λΆ„ const [isDownloading, setIsDownloading] = useState(false); const downloadTemplate = async () => { try { setIsDownloading(true); const response = await fileAPI.downloadExcel({ responseType: 'blob', }); if (respon..
1. ν‚€(Key)와 ν”„λ‘œνΌν‹°(Property) 객체(Object)λŠ” μ—¬λŸ¬ 개의 데이터λ₯Ό ν•˜λ‚˜λ‘œ λ¬Άμ–΄ ν‘œν˜„ν•˜λŠ” 데이터 ꡬ쑰이닀. 객체 μ•ˆμ˜ 각 데이터 μš”μ†Œλ₯Ό ν”„λ‘œνΌν‹°λΌκ³  λΆ€λ₯΄λ©°, ν”„λ‘œνΌν‹°λŠ” 이름(ν‚€)κ³Ό κ°’μœΌλ‘œ κ΅¬μ„±λœλ‹€. const person = { name: 'Alice', age: 30, job: 'Engineer' }; name, age, job은 key이고 Alice, 30, Engineer은 ν”„λ‘œνΌν‹°μ˜ 값이라고 λΆ€λ₯Έλ‹€. 2. νƒ€μž…(Type) νƒ€μž…μ€ λ³€μˆ˜, λ§€κ°œλ³€μˆ˜, ν•¨μˆ˜ 등에 μ–΄λ–€ μ’…λ₯˜μ˜ κ°’μ΄λ‚˜ 데이터가 λ“€μ–΄κ°ˆ 수 μžˆλŠ”μ§€λ₯Ό λͺ…μ‹œν•˜λŠ” 역할을 ν•œλ‹€. TypeScriptμ—μ„œλŠ” νƒ€μž…μ„ μ‚¬μš©ν•˜μ—¬ λ³€μˆ˜λ‚˜ ν•¨μˆ˜μ˜ 인자 λ“±μ˜ 값이 μ–΄λ–€ ν˜•νƒœλ₯Ό κ°€μ Έμ•Ό ν•˜λŠ”μ§€λ₯Ό λͺ…ν™•ν•˜κ²Œ 지정할 수 μžˆμŠ΅λ‹ˆλ‹€. const age: n..
TypeScript μ—μ„œ λ³€μˆ˜κ°€ string ν˜•νƒœμ—¬μ•Ό ν•˜λŠ”λ° undefined일 λ•Œ λ°œμƒν•˜λŠ” νƒ€μž… μ—λŸ¬λ‘œ, ν”ν•˜κ²Œ λ°œμƒν•œλ‹€. κ°€μž₯ κ°„λ‹¨ν•œ 해결책은, 값이 undefined일 경우 빈 λ¬Έμžμ—΄μΈ ''을 ν• λ‹Ήν•΄μ£ΌλŠ” 것이닀. μ•„λž˜λŠ” κ·Έ μ˜ˆμ‹œμ΄λ‹€. const userName: string = userDetails?.userName || '';
λ‹€μŒ μ½”λ“œμ˜ λ¬Έμ œκ°€ λ¬΄μ—‡μΌκΉŒ? {relData?.totalElements > 1 && ( handleChangeRepPopup(!showChangeRepPop)} style={{ marginRight: '10px' }} > {t('button.filecomponent.changeRep')} )} → 'relData.totalElements' is possibly 'undefined'. μ½˜μ†”μ— 이런 였λ₯˜κ°€ 좜λ ₯ λœλ‹€. 말 κ·ΈλŒ€λ‘œ, relData.totalElements κ°€ undefined 일 수 있기 λ•Œλ¬Έμ΄ 이런 였λ₯˜κ°€ λ‚˜λŠ” 것이닀. κ°€μž₯ κ°„λ‹¨ν•œ 해결방법은 relData && relData.totalElements > 1 && ( μ΄λ ‡κ²Œ 쑰건뢀 λ Œλ”λ§μ„ μ΄μš©ν•˜λŠ” 것이닀. relDataκ°€ μ‘΄μž¬ν•  λ•Œλ§Œ λ‹€μŒ..
yesolz
'TypeScript' νƒœκ·Έμ˜ κΈ€ λͺ©λ‘