인프런 커뮤니티 질문&답변

sj p님의 프로필 이미지
sj p

작성한 질문수

Slack 클론 코딩[실시간 채팅 with React]

강의를 듣다가 ts에 대해 궁금한게 생겨서 질문 드립니다

작성

·

112

0

제가 아래와 같은 코드를 쳤는데

const anumber = 3
const bstring = '17'

console.log(a+btypeof(a+b))

결과가 317, string으로 나옵니다.

a와 b가 타입이 다르기 때문에 에러가 나야 하는거 아닌가요?

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

타입이 다른 것은 맞는데 어떤 부분에서 에러가 나야하는건가요? a+b를 하면 문자열이 되는 건 자바스크립트 성질입니다.

sj p님의 프로필 이미지
sj p
질문자

원래 저런건가요?

연산을 그냥 js처럼 돌려버릴거면 강타입이 된 의미가 있는건가요?

저는 js의 저 타입을 막 바꿔버리는 약점을 보완했다고 생각했는데 그런건 아닌가 보네요?

sj p님의 프로필 이미지
sj p
질문자

어쨌든 js로 변환된 후 실행되는거니 돌아가는거야 문제 없다고 생각하지만

적어도 개발환경에서 빨간 줄이라도 띄워줘야 되는거 아닌지... 싶었는데요

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

타입스크립트는 타입 체크를 해주는 것이지 강타입으로 언어를 전환한 것은 아닙니다. 형 변환을 제약할 이유도 없고요.

const c: number  = a + b; 이럴 때 에러를 띄우는 것이지 단순히 a + b는 아무 문제도 없습니다.

sj p님의 프로필 이미지
sj p

작성한 질문수

질문하기