반응형
typescript에서“not-type of parameter에 할당 할 수 없음”오류는 무엇입니까?
코드는 다음과 같습니다.
const foo = (foo: string) => {
const result = []
result.push(foo)
}
다음 TS 오류가 발생합니다.
[ts] '문자열'유형의 인수는 'never'유형의 매개 변수에 할당 할 수 없습니다.
내가 도대체 뭘 잘못하고있는 겁니까? 이것은 버그입니까?
result
다음과 같이 문자열 배열로 정의하기 만하면됩니다.
const result : string[] = [];
또 다른 방법은 다음과 같습니다.
const result = [] as any;
result
string 배열에 입력해야 합니다 const result: string[] = [];
.
이것은 최근 회귀 또는 typescript의 이상한 행동으로 보입니다. 코드가있는 경우 :
const result = []
일반적으로 다음과 같이 쓴 것처럼 처리됩니다.
const result:any[] = []
그러나 tsconfig에 noImplicitAny
FALSE 와 strictNullChecks
TRUE 가 모두있는 경우 다음 과 같이 처리됩니다.
const result:never[] = []
이 동작은 모든 논리, IMHO를 위반합니다. null 검사를 켜면 배열의 항목 유형이 변경됩니까 ?? 그런 다음 켜면 경고없이 noImplicitAny
의 사용이 실제로 복원 any
됩니까 ??
의 배열이 실제로 있으면 any
추가 코드로 표시 할 필요가 없습니다.
반응형
'programing' 카테고리의 다른 글
Timsort와 Quicksort의 비교 (0) | 2020.12.25 |
---|---|
MySQLdb, mysqlclient 및 MySQL 커넥터 / Python의 차이점은 무엇입니까? (0) | 2020.12.24 |
makefiles-모든 c 파일을 한 번에 컴파일 (0) | 2020.12.24 |
How can I redirect STDERR to STDOUT, but ignore the original STDOUT? (0) | 2020.12.24 |
Javascript Engines Advantages (0) | 2020.12.24 |