반응형
Notice
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 머신러닝
- 파이썬
- 데이터구조
- 웹개발
- 빅데이터
- 보안
- 소프트웨어공학
- 데이터베이스
- 버전관리
- 인공지능
- 자료구조
- 프로그래밍
- 자바스크립트
- 사이버보안
- 소프트웨어
- 컴퓨터공학
- 데이터과학
- 2
- 코딩
- 컴퓨터비전
- 네트워크
- 데이터분석
- 알고리즘
- Yes
- 딥러닝
- 네트워크보안
- 컴퓨터과학
- 클라우드컴퓨팅
- I'm Sorry
- 프로그래밍언어
Archives
- Today
- Total
스택큐힙리스트
어떤 경우에 TypeScript에서 "not assignable to parameter of type never" 오류가 뜨는 건가요? 본문
카테고리 없음
어떤 경우에 TypeScript에서 "not assignable to parameter of type never" 오류가 뜨는 건가요?
스택큐힙리스트 2024. 1. 8. 21:49반응형
코드는:
const foo = (foo: string) => {
const result = []
result.push(foo)
}
다음과 같은 TS 오류가 발생합니다:
[ts] 'string' 타입의 인수는 'never' 타입의 매개변수에 할당할 수 없습니다.
무엇이 잘못되었나요? 이것은 버그인가요?
답변 1
해야 할 일은 다음과 같이 result
를 문자열 배열로 정의하는 것입니다:
const result: string[] = [];
배열 유형을 정의하지 않으면 기본적으로 never
로 설정됩니다. 따라서 문자열을 추가하려고 할 때 유형이 일치하지 않았기 때문에 보았던 오류가 발생합니다.
답변 2
TypeScript에서 할당할 수 없는 never 형식 매개 변수 오류란 무엇인가요?TypeScript는 정적 형식 언어로서 JavaScript 코드의 타입 검사를 제공하여 개발자들이 더욱 안정적이고 신뢰할 수 있는 코드를 작성할 수 있도록 도와줍니다. 하지만 때로는 TypeScript에서 발생하는 오류 메시지들은 이해하기 어려울 수 있습니다. 이 중 하나가 할당할 수 없는 never 형식 매개 변수 오류입니다. 이 오류가 왜 발생하는지 알아보도록 하겠습니다.
이 오류는 매개 변수의 타입이 never로 지정되어 있을 때 호출하는 함수의 인수가 이 매개 변수의 예상되는 유형과 일치하지 않을 때 발생합니다. never 타입은 절대로 발생하지 않는 값의 유형을 의미하며, 사용자가 의도적으로 함수가 절대로 반환하지 않을 것임을 나타내는 것입니다. 따라서 해당 매개 변수를 다른 타입의 값으로 할당하려고 시도하면 TypeScript는 이러한 시도를 방지하기 위해 할당할 수 없는 never 형식 매개 변수 오류를 발생시킵니다.
이 오류를 이해하는 가장 일반적인 경우는 다음과 같습니다. functionA라는 함수에서 매개 변수 타입으로 never를 사용하고, functionB라는 함수에서는 이러한 never 타입을 기대하는 매개 변수가 있을 때 오류가 발생합니다. functionA에서 반환된 값이 functionB로 전달될 때에는 존재하지 않을 수 있습니다. 따라서 TypeScript는 이 오류를 발생시켜 런타임 중 오류가 발생하는 것을 방지합니다.
이 문제를 해결하는 가장 일반적인 방법은 매개 변수를 해당 never 타입에서 다른 타입으로 변경하거나, 반환되는 값을 반환하지 않도록 설계된 함수를 사용하지 않는 것입니다. 또는 해당 함수에서 반환되는 값을 정확히 처리하도록 코드를 변경하면 이 오류가 없어집니다.
할당할 수 없는 never 형식 매개 변수 오류는 TypeScript에서 확인할 수 있는 중요한 오류 중 하나입니다. 해당 오류는 코드 안정성을 유지하기 위해 개발자가 의도한 대로 함수를 사용하고 인수를 전달하도록 도와줍니다.
반응형
Comments