>

이 기능이 있습니다 :

function proc(unames: Array<string>){}

이것을 전달하려고합니다 :

 import _ = require('lodash');
  const usernames = _.flattenDeep([unames]).filter(function (item, index, arr) {
     return item && arr.indexOf(item) === index;
  });
  const recipient = 'foobarbaz';
  proc(usernames.concat(recipient));

이 오류가 발생합니다 :

누군가 이것을 완화시키는 방법을 알고 있습니까?

이 작업을 시도했는데 더 길고 더 미친 오류가 발생합니다.

function proc(unames: Array<string | ReadonlyArray<string>>){}

그러나 이로 인해 오류가 사라졌습니다 :

function proc(unames: Array<string | ReadonlyArray<any>>){}

진행 상황이 확실하지 않습니다.


  • 답변 # 1

    경고는 .concat() 사용에 관한 것으로 보입니다   proc() 보다는 .

    Array 에서 전화했을 때 usernames 와 같은 , TypeScript는 .concat() 에 제공된 인수가 유효한지 확인합니다.  또한 Array 입니다 s.

    경고를 해결하려면 몇 가지 옵션이 있습니다 :

    Lodash를 사용하고 있기 때문에 자체 _.concat()  개별 값을 추가 할 수 있으며 TypeScript의 유효성 검사는 다음을 알고 있어야합니다.

    const recipient = 'foobarbaz';
    proc(_.concat(usernames, recipient));
    
    

    와이즈 비즈 정의   recipient 로  또는 Array 를 부를 때 포장 :

    .concat()
    
    
    const recipient = [ 'foobarbaz' ];
    proc(usernames.concat(recipient));
    
    

    나중 버전의 ECMAScript에 대한 유효성을 검사하도록 TypeScript를 구성 할 수도 있습니다. 표준 5.1과 2015 (6 판) 사이에서 내장 const recipient = 'foobarbaz'; proc(usernames.concat( [recipient] )); 의 동작  확장 가능을 감지하여 개별 값을 지원하도록 변경되었습니다.

    현재 TypeScript는 .concat() 를 검증하고 있습니다  5.1 이상인 경우

    .concat()

관련 자료

  • 이전 iis 7 - IIS 서버에서 WebAPI application_start가 실행되고 있지 않습니다
  • 다음 C/C ++와 같은 Python에서 매크로 대체 사용