unknown vs any
개념
unknown
, any
타입을 지정하기 애매할 때 사용
unknown
타입이 뭔지 모르겠으니 개발자가 타입을 정확히 지정주어야 한다.
typeof
, instanceof
등 타입을 확인하여 적절한 타입 주입
시켜 사용한다.
Example
code reference: https://docs.nestjs.com/exception-filters#catch-everything
@Catch()
export class AllExceptionsFilter implements ExceptionFilter {
constructor(private readonly httpAdapterHost: HttpAdapterHost) {}
catch(exception: unknown, host: ArgumentsHost): void {
const { httpAdapter } = this.httpAdapterHost;
const ctx = host.switchToHttp();
const httpStatus =
exception instanceof HttpException
? exception.getStatus()
: HttpStatus.INTERNAL_SERVER_ERROR;
const responseBody = {
statusCode: httpStatus,
timestamp: new Date().toISOString(),
path: httpAdapter.getRequestUrl(ctx.getRequest()),
};
httpAdapter.reply(ctx.getResponse(), responseBody, httpStatus);
}
}
any
어떠한 타입이 될 수 있으니 자유롭게 사용 가능
참고
https://docs.nestjs.com/exception-filters#catch-everything
https://simsimjae.tistory.com/464