-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
as type과 type()의 차이가 뭔가요?
21.11.29 12:05 작성 조회수 238
0
답변을 작성해보세요.
0
mznx0192
질문자2021.11.29
vscode에서 getDataValue()의 리턴이 any라고 표현되서 any인 줄 알고 있었는데, string이 맞는 건가요??
그리고 답변 주신내용에서 자바스크립트 형변환을 사용해야한다고하셨는데,
const test = req.query.test 에서 string으로 쓰고 싶은 경우는
req.query.test as string 이 아닌 string(req.query.test) 라고 작성해야한다는 말씀이신거죠?
조현영
지식공유자2021.11.29
거기서 나오는 타이핑을 믿으시면 안 됩니다. 실제 타입이 무엇인지가 중요한 겁니다. 런타임에는 any라는 타입이 없습니다. 타입이 any로 나오면 타입시스템이 망가져서 스스로 해결해야한다고 보시면 됩니다.
0
조현영
지식공유자2021.11.29
1. 기본적으로 자바스크립트 형변환을 통해서 타입을 맞춰주셔야 합니다. as는 최후의 수단으로 타입을 강제로 지정하는 겁니다. 대부분의 경우는 타입스크립트 지식이 부족해서 as를 쓰거나, 라이브러리 타이핑이 이상해서 as를 씁니다.
2. getDataValue('...')는 string일 겁니다. 그래서 숫자에만 있는 toLocaleString이 에러가 나는 거고요. 그래서 Number나 parseInt, parseFloat으로 숫자로 변환해주어야 합니다.
타입스크립트 플레이그라운드로 할 때는 되는 이유가 test를 any로 지정해서 되는 것 같습니다. test를 string으로 해보세요.
답변 2