programing

TypeScript - setInterval로 설정된 유형

closeapi 2023. 10. 28. 07:56
반응형

TypeScript - setInterval로 설정된 유형

나중에 setInterval이 할당되는 변수에 유형을 할당하려면 다음과 같이 하십시오.

this.autoSaveInterval = setInterval(function(){
      if(this.car.id){
        this.save();
      }
      else{
        this.create();
      }
    }.bind(this), 50000);

여기에 할당해야 할 유형은 무엇입니까?인터벌 자동 저장 가능?

파티에 늦었지만, 가장 좋은 유형(특히 유형이 불투명하기 때문에, 우리는 그것을 전달할 수 있다는 것에만 신경을 씁니다.clearInterval()나중에)는 자동으로 추론되는 것일 수 있습니다. 즉, 다음과 같은 것입니다.

ReturnType<typeof setInterval>

유형은 사용할 기능에 따라 2개의 오버로드가 있으며, 반환 유형은 빨간색 경계 상자에 표시됩니다.

enter image description here

번호를 반환하는 번호를 사용하려면 다음을 사용하십시오.

window.setInterval(...)

유형은 숫자입니다.

private autoSaveInterval: number = setInterval(() => {
  console.log('123');
}, 5000);

NodeJS인 것 같습니다.시간 초과와 미망인.setInterval은 number:

const nodeInterval: NodeJS.Timeout = setInterval(() => {
  // do something
}, 1000);

const windowInterval: number = window.setInterval(() => {
  // do something
}, 1000);

다른 답변에서도 언급되듯이, 그 유형은setInterval둘 중 하나입니다:number아니면:NodeJS.Timer.

사용하실 분이 계시다면 답변 범위를 조금 더 확장하고 싶습니다.setInterva반응유형 스크립트 포함

const Clock: React.FC = () => {
  const secondsRef = useRef<NodeJS.Timer>();

  useEffect(() => {
    secondsRef.current = setInterval(() => { // type is taken correctly and no errors
      // do your stuff...
    }, 1000);
  }, []);

  return (
    <div>
      {/* your jsx... */}
    </div>
  );
};

export default Clock;

누군가 내 대답이 도움이 되길...해피코딩 :)

비록 나는 앱을 실행할 수 있었습니다.

id: number;

this.id = setInterval(...)

테스트를 통해 Type 'Timeout'이 Type 'number'에 할당될 수 없음을 알려줄 것입니다. 그래서 저는 https://stackoverflow.com/a/59681620/18975994 접근 방식으로 진행했고, 그것은 저에게 효과가 있었습니다.

이와 같은 경우에는 불투명한 핸들로 취급되므로 윈도우 대 노드 환경을 만족시키기 위해서만 유형과 씨름할 가치가 없습니다.이것만 사용하고 끝내면 됩니다.

let timerHandle: any = null;

function start() {
  timerHandle = setInterval(...);
}

export function stop() {
  if (timerHandle) clearInterval(timerHandle);
}

이 유형은 setInterval:NodeJS.Timer

연산자 유형을 사용하여 다음과 같은 변수의 데이터 유형을 찾습니다.

type of는 모든 유형의 단일 피연산자 앞에 배치되는 단항 연산자입니다.이 값은 피연산자 유형을 지정하는 문자열입니다.

var variable1 = "Hello";
var autoSaveInterval;

this.autoSaveInterval = setInterval(function(){
      if(this.car.id){
        this.save();
      }
      else{
        this.create();
      }
    }.bind(this), 50000);
    
console.log("1st: " + typeof(variable1))
console.log("2nd: " + typeof(autoSaveInterval ))

언급URL : https://stackoverflow.com/questions/51376589/typescript-what-type-is-setinterval

반응형