inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

as type과 type()의 차이가 뭔가요?

445

mznx0192

작성한 질문수 4

0

1. 타입 지정에서 as type과 type()의 차이가 뭔가요? 제가 생각하기에는 as type의 경우 여러 개의 타입을 갖고 있는 변수에 as type을 쓰면 그 순간은 지정한 특정타입으로 동작하는 것으로 알고있고, type()의 경우 해당 변수를 type으로 형변환하는 것으로 알고 있는데요. 어떤 경우에 as type을 써야하는지 type()을 써야하는 지 헷갈려서 질문드립니다. 더불어 위와 같은 내용은 구글에서 어떤 식으로 찾아보면 좋을 지 키워드도 알려주시면 감사하겠습니다. 2. 혹시 타입스크립트 시퀄라이즈에 1번과 관련된 내용의 버그 같은게 있는 건가요? 아니면 제가 놓치고 있는 부분이 있을까요? 예를 들어 시퀄라이즈 DB 조회 후 getDataValue로 가져오는 타입은 any인데, 숫자에 1000단위마다 콤마를 적용하려고 toLocaleString("ko-KR")을 사용하는 경우 Number(product?.getDataValue("price")).toLocaleString("ko-KR") // "1,234" 의 경우 잘 변환되는데,
(product?.getDataValue("price") as number).toLocaleString("ko-KR") // "1234"은 올바르게 변환이 안되네요.
타입스크립트 플레이그라운드에서 간단히 테스트 했었을 때는 잘됐습니다. const test: any = 1234 console.log(Number(test).toLocaleString("ko-KR")); // "1,234" console.log((test as number).toLocaleString("ko-KR")); // "1,234"

typesscript nodejs type express TypeORM NestJS

답변 2

0

mznx0192

vscode에서 getDataValue()의 리턴이 any라고 표현되서 any인 줄 알고 있었는데, string이 맞는 건가요??




그리고 답변 주신내용에서 자바스크립트 형변환을 사용해야한다고하셨는데,

const test = req.query.test 에서 string으로 쓰고 싶은 경우는

req.query.test as string 이 아닌 string(req.query.test) 라고 작성해야한다는 말씀이신거죠?

0

제로초(조현영)

거기서 나오는 타이핑을 믿으시면 안 됩니다. 실제 타입이 무엇인지가 중요한 겁니다. 런타임에는 any라는 타입이 없습니다. 타입이 any로 나오면 타입시스템이 망가져서 스스로 해결해야한다고 보시면 됩니다.

0

제로초(조현영)

1. 기본적으로 자바스크립트 형변환을 통해서 타입을 맞춰주셔야 합니다. as는 최후의 수단으로 타입을 강제로 지정하는 겁니다. 대부분의 경우는 타입스크립트 지식이 부족해서 as를 쓰거나, 라이브러리 타이핑이 이상해서 as를 씁니다.

2. getDataValue('...')는 string일 겁니다. 그래서 숫자에만 있는 toLocaleString이 에러가 나는 거고요. 그래서 Number나 parseInt, parseFloat으로 숫자로 변환해주어야 합니다.

타입스크립트 플레이그라운드로 할 때는 되는 이유가 test를 any로 지정해서 되는 것 같습니다. test를 string으로 해보세요.

강의자료는 어디서 다운받나요?

0

110

3

질문 있습니다.

0

294

3

코드 편집기 확장 프로그램

0

209

2

(질문)비밀 저장소에 접근하기 위한 인증 정보는 로컬 .env에 저장하는지?

0

143

2

(질문)외부 저장소를 통한 환경변수 불러오기 비동기 질문

0

166

3

로그인을 해도 LoggedInGuard쪽에서 false값이 나옵니다.

0

152

2

로그인방법이 고민됩니다.

0

190

2

yarn seed 명령어 실행 시 데이터 삽입 안됨

0

296

4

yarn run db:create 시에 발생하는 데코레이터 오류

0

242

2

npm run db:create 시에 발생하는 decorating 오류

0

231

2

RxJS 디버깅 질문 있습니다.

0

187

3

CacheManager에 대해 질문 있습니다.

0

173

2

로깅은 어떻게 하는게 효율적일까요?

0

224

1

CORS 질문 있습니다.

0

417

2

쿠키 옵션에 대해서 질문 있습니다.

0

184

2

로그아웃 요청이 403 forbidden 에러가 나는데 왜그런걸까요??

0

447

1

401 unauthorized문제

0

286

1

가드의 장점에 대해서 질문이 있습니다.

0

225

1

로그 관리에 대해 질문 있습니다.

0

252

2

CORS 에러 질문 있습니다.

0

318

2

배포 환경 DB 연결 질문 있습니다.

0

411

2

socket io 미 연결 문제 (nest & flutter)

1

1154

3

no elements in sequence 에러 관해서 질문이 있습니다.

0

454

1

start:dev-backup으로 돌리면 핫 리로딩이 되요 정상인가요?

0

322

1