programing

typescript에서“not-type of parameter에 할당 할 수 없음”오류는 무엇입니까?

nasanasas 2020. 12. 24. 23:50
반응형

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;

resultstring 배열에 입력해야 합니다 const result: string[] = [];.


이것은 최근 회귀 또는 typescript의 이상한 행동으로 보입니다. 코드가있는 경우 :

const result = []

일반적으로 다음과 같이 쓴 것처럼 처리됩니다.

const result:any[] = []

그러나 tsconfig에 noImplicitAnyFALSE strictNullChecks TRUE 가 모두있는 경우 다음 같이 처리됩니다.

const result:never[] = []

이 동작은 모든 논리, IMHO를 위반합니다. null 검사를 켜면 배열의 항목 유형이 변경됩니까 ?? 그런 다음 켜면 경고없이 noImplicitAny의 사용이 실제로 복원 any됩니까 ??

의 배열이 실제로 있으면 any추가 코드로 표시 할 필요가 없습니다.

참조 URL : https://stackoverflow.com/questions/52423842/what-is-not-assignable-to-parameter-of-type-never-error-in-typescript

반응형