typescript/await-thenable 정확성
작동 방식
이 규칙은 Thenable이 아닌 값을 기다리는 것을 금지합니다.
왜 문제인가요?
비-프로미스 유형의 값을 기다리는 것은 유효한 자바스크립트입니다(즉시 해결됨). 그러나 이 방식은 이러한 동작을 인지하지 못한 독자에게 혼란을 줄 수 있습니다. 또한 프로그래머의 실수일 가능성이 있으며, 예를 들어 프로미스를 반환하는 함수를 호출할 때 괄호를 빠뜨리는 경우 등이 포함될 수 있습니다.
예시
이 규칙에 적합하지 않은 코드 예시:
await 12;
await (() => {});
// 프로미스가 아닌 값들
await Math.random;
await { then() {} };
// 이것은 프로미스가 아님 - 프로미스를 반환하는 함수임
declare const getPromise: () => Promise<string>;
await getPromise;이 규칙에 적합한 코드 예시:
await Promise.resolve('value');
await Promise.reject(new Error());
// 프로미스 유사 값들
await {
then(onfulfilled, onrejected) {
onfulfilled('value');
},
};
// 이것은 프로미스임 - 함수를 호출하여 생성됨
declare const getPromise: () => Promise<string>;
await getPromise();사용 방법
설정 파일 또는 명령줄 인터페이스를 통해 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:
json
{
"rules": {
"typescript/await-thenable": "error"
}
}bash
oxlint --type-aware --deny typescript/await-thenable