# type assertion

10개의 포스트
post-thumbnail

[Typescript] 타입 단언 Type Assertion

이번엔 타입 단언(Type Assertion)에 대해 알아보겠습니다. > 단언하다는 '바른 말을 하다, 주저하지 않고 딱 잘라 말하다'를 의미하는 단어입니다. 그 이름처럼 타입을 딱 정한다라고 생각하고 타입 단언이 무슨 기능인지 알아보도록 하겠습니다. 타입 단언 Type Assertion 타입 단언은 컴파일러에게 해당 값이 특정 타입이라고 지정하는 문법입니다. 이전 포스트들에서 여러 문법과 기능을 하면서 타입스크립트 컴파일러는 어떤 변수나 객체, 함수의 타입을 추론하고 결정한다고 했습니다. 타입 단언은 컴파일러 대신 프로그래머가 이 값이 어떤 타입인지 알리고 해당 타입으로 취급하게끔 만들어줍니다. >컴파일러의 타입 추론 대신, 프로그래머가 컴파일러에게 지정한 타입으로 생각하게 만드는 기능입니다. 타입스크립트는 아래와 같은 빈 객체 생성을 허용하지 않습니다. 왜냐하면 **Student 객체 타입은 id와 name 프로퍼티를 포함한 객체를 Student

2023년 8월 27일
·
0개의 댓글
·
post-thumbnail

[Type Script] 타입 단언( type assertion)의 중요한 예시

처음에 이론으로만 배우다가 역시 막상 코드를 사용하려고 하니까 타입단언을 안 쓰면 안되는 구간이 생겼고, 타입 단언을 사용해줘야함을 알게 되었다. (! 결론 꼭 보기) 상황 redux로 todo list를 store에 저장해서 쓰는 상황이고, todo를 삭제하는 함수 로직에 문제가 발생한다. todo 모듈에서 다음과 같이 타입을 정의했다. 봐야할 부분은 export type T_todoState = Partial>;이다. initialState에서 빈 값을 갖기 때문에 어쩔 수 없이 Partial로 정의했지만 이것이 나중에 todo 삭제 함수의 로직에 방해가 되었다. 에러 다음과 같다. 여기서 봐야할 부분은 storedTodoList.filter() 부분이다. 처음에 정의할 때 Partial로 정의했기 때문에 위와 같이 코드를 쓰면 el 부분에 다음의 에러가 발생한다. ![error m

2023년 7월 30일
·
0개의 댓글
·

타입 단언(Type Assertion)이 무엇인가요?

타입 단언(Type Assertion)이 무엇인가요? 타입 단언(Type Assertion)은 TypeScript에서 컴파일러에게 변수의 타입을 개발자가 명시적으로 알려주는 방법입니다. TypeScript는 정적 타입 검사를 수행하며, 변수의 타입을 추론하려고 노력하지만 때로는 개발자가 변수의 타입을 더 잘 알고 있을 수 있습니다. 이럴 때, 개발자는 타입 단언을 사용하여 컴파일러에게 변수의 타입을 알려줄 수 있습니다. 타입 단언은 두 가지 형태로 사용될 수 있습니다: as 구문: as 구문을 사용하여 변수의 타입을 명시적으로 지정할 수 있습니다. 오른쪽의 값(value)은 왼쪽의 타입(Type)으로 타입 단언됩니다. `` 구문: ` 구문은 타입 단언을 수행하는 다른 형식입니다. 변수의 타입(Type)을 ` 사이에 명시하여 타입 단언을 수행합니다. 타입 단언은 컴파일러에게 개발자가 타입을 더 잘 알고 있다고 알려주

2023년 6월 22일
·
0개의 댓글
·

TypeScript(2) - 열거형(Enum), Interface

열거형(Enum) Enum이란?? Enum은 특정 값의 집합을 정의할 때 사용되며 다음과 같은 형태로 정의할 수 있습니다. 열거형의 종류로는 문자형과 숫자형이 있으며 따로 사용되거나 이 둘의 조합으로 정의될 수 있습니다. 숫자형 열거형 숫자형 열거형은 디폴트 값으로 숫자형을 사용하며, 각 값은 자동으로 0부터 시작하여 1씩 증가하지만 수동으로 값을 지정할 수도 있습니다. 이러한 열거형 값에 대한 산술 연산을 수행할 수도 있습니다. 상수값을 대신하여 이렇게 열거형을 사용하게 되면 코드의 가독성도 올라가고 오타에 의한 오류를 줄일 수 있다는 장점이 있습니다. 역매핑(Reverse mapping) 역 매핑이란 숫자형 열거형에만 존재하는 특징입니다. 이는 열거형의 key로 value를 얻을 수도 있고 value로 key를 얻을 수도 있다는 특징이 있습니다. 문자형 열거형 문자형도 숫자형과 비슷한 유형을 가지고 있지만 auto-incrementi

2023년 5월 31일
·
0개의 댓글
·

타입스크립트 정리7: DOM, type assertion

Dom querySelector getElementById addEventListener 등은 JavaScript를 통해 HTML 및 CSS와 상호 작용하는 메서드 TypeScript와 이러한 메서드의 상호 작용 방식 컴파일러 옵션 설정 lib 옵션 대부분의 경우 건드리지 않고 기본값만 사용하지만 옵션을 수정하고 일부를 추가해서 TypeScript에 해당 타입에 접근해야 될때가 있다 기본적으로 TypeScirpt는 DOM의 모든 타입 정의를 자동으로 인지한다 DOM의 모든 타입 정의를 자동으로 인지함. document 및 요소에 대한 메서드와 이벤트 타입 정의. 별도로 설치하거나 하지 않아도 TypeScript에는 모든 인터페이스와 타입이 정의되어 있음. 그런데 백엔드나 노드에서 작업을 할 경우에 이러한 타입이 필요하지 않게 되면 중지시킬 수 있다. 또는 TypeScript가 모르는 다른 타입을 추가할 수도 있다 tsconfig.json에

2023년 5월 11일
·
0개의 댓글
·
post-thumbnail

type assertion란

type assertion Typescript에서는 시스템이 추론 및 분석한 타입 내용을 우리가 원하는 대로 얼마든지 바꿀 수 있다. 이때 "타입 표명(type assertion)"이라 불리는 메커니즘이 사용된다. TypeScript의 타입 표명은 프로그래머가 컴파일러에게 내가 너보다 타입에 대해 더 잘 알고 있고, 나의 주장에 대해 의심하지 말라고 하는 것과 같다. type assertion을 사용하면 값의 type을 설정하고 컴파일러에 이를 유추하지 않도록 지시할 수 있다. 이것은 프로그래머로서 TypeScript가 자체적으로 추론할 수 있는 것보다 변수 요형에 대해 더 잘 이해하고 있을 때이다. 컴파일러는 foo type이 속성이 없는 {}라고 가정하기 때문에 위의 예에서는 컴파일러 오류가 발생한다. 그러

2023년 2월 23일
·
0개의 댓글
·

타입스크립트 정리

타입스크립트로 계산기를 만들어보며, 배웠던 점을 정리하고자 한다. type assertion 타입스크립트는, 타입을 추론한다. 이때, 우리가 타입을 더 잘 알고 있다고 판단이 들면, type assertion을 통해, 이를 알릴 수 있다. 타입을 표명하면, 타입스크립트가 추론한 타입이 아닌, 사용자가 표명한 타입을 받아들인다. 이때 실제로 해당 타입이 아니더라도, 타입스크립트가 받아들이기 때문에, 아주 안전한 방법은 아니다. 사용법: value as type index signature 객체 타입을 생성할 때, 타입의 프로퍼티들을 미리 다 알 수 없지만, 프로퍼티들이 어떤 형태를 가져야 하는지는 알 수도 있다. 이때, index signature를 사용하여, 형태를 알릴 수 있다. index signature 파라미터의 타입은 string, number, symbol 혹은 template literal일 수 있다. 사용법: [signature_parameter:

2022년 7월 15일
·
0개의 댓글
·

[에러 일지] TypeScript - Type Assertion으로 'Property does not exist...' - ts(2339) 오류 해결하기

타입스크립트에서는 DOM 다루기가 까다롭다. 타입을 지정해주지 않으면 오류를 뿜어내는 경우가 많기 때문이다. 타입의 위계가 정해져 있으며, 자세히는 아니라도 오류를 이해하기 위해 이를 살펴볼 필요가 있다. 각 타입마다 존재하는 프로퍼티가 다르기 때문이다. 다만, React에서 직접 DOM을 다루는 것은 잘못된 방식이다. Element 타입 위계 > EventTarget 관련 오류 querySelector 함수의 결괏값은 'Element' 타입이라는 점에 주의하며 아래 예제를 살펴보자. 자바스크립트에서는 오류가 나지 않지만, 아마 타입스크립트에서는 아래와 같은 오

2022년 1월 18일
·
0개의 댓글
·

타입변환, 타입단언

자바스크립트에서 변수의 타입을 변환 할 수 있는 기능을 타입변환이라고 하고, 타입스크립트에서는 자바스크립트와의 구분을 하기위해 타입단언이라고 합니다. 예시1 아래의 코드는 {}의 타입을 알 수 없어서 에러가 납니다. {}를 로 타입변환해주면 해결됩니다. 예시2 타입변환은 아래와 같은 경우에 필요합니다. oject타입의 student

2021년 1월 29일
·
0개의 댓글
·

타입스크립트 스터디 - 3

고급 타입 레퍼런스 유니온 타입 문제상황: 리턴하는 타입이 string일 수도 Error일 수도 있는데.. 어찌해야합니까? any를 쓸거면 왜 typescript를 쓰겠어요? type을 제한해서 컴파일시 에러를 발생시키자는게 typescript를 쓰는 이유중 하나일 것 같아요. 전통적인 객체 지향 코드에서는 타입의 계층을 만들어 두 가지 타입을 추상화 할 수 있습니다. 이것이 훨씬 더 명백하기는 하지만 또 약간 지나치기도 합니다. 즉 두 가지 타입을 묶어서 쓸 수 있지만, 굳이 그래야 하나입니다. 그때 사용하는 것이 바로 유니온 타입입니다. 유니온 타입은 여러 타입 중 하나일 수 있는 값을 설명합니다. 각 타입을 구분하기 위해 수직 막대(|)를 사용하므로 number | string | boolean은 number, string 또는 boolean 될

2019년 10월 4일
·
0개의 댓글
·