본문 바로가기

프론트엔드/TypeScript31

unknown 응용 프로그램을 작성할 때 모르는 변수의 타입을 묘사해야 할 수도 있다. 이러한 값은 동적 컨텐츠(예: 사용자로부터 또는 우리 API의 모든 값을 의도적으로 수락하기를 원할 수 있다.) 이 경우, 컴파일러와 미래의 코드를 읽는 사람에게 이 변수가 무엇이든 될 수 있음을 알려주는 타입을 제공 하기를 원하므로 unkown 타입을 제공한다. declare const maybe: unknown; // unknown은 number에 바로 할당할 수 없다. // const aNumber: number = maybe; if (maybe === true){ const aBoolean: boolean = maybe; // boolean 값으로 정의되었기 때문에 에러 발생 // const aString: string = .. 2021. 6. 15.
any 어떤 타입이어도 상관없는 타입. 이걸 최대한 쓰지 않는게 핵심이다. 왜냐면 컴파일 타임에 타입 체크가 정상적으로 이뤄지지 않기 때문이다. 그래서 컴파일 옵션 중에는 any를 써야하는데 쓰지 않으면 오류를 뱉도록 하는 옵션도 있다. -> nolmplicitAny function returnAny(message: any): any { console.log(message); } const any1 = returnAny("리턴은 아무거나"); console.log(any1); any는 계속해서 개체를 통해 전파된다. 결국, 모든 편의는 타입 안전성을 잃는 대가로 온다는것을 기억해야한다. 타입 안전성은 TypeScript를 사용하는 주요 동기 중 하나이며 필요하지 않은 경우에는 any를 사용하지 않도록 해야한다... 2021. 6. 15.
Array 원래 자바스크립트에서 array는 객체이다. 사용방법 Array 타입[] let list: number[] = [1, 2, 3]; let list: Array = [1,2,3] // 권장 let list: number[] = [1,2,3]; console.log(list.toString); console.log(list) // 사용 자제 let list2: Array = [1,2,3]; console.log(list2.toString); console.log(list2) // number, string 타입을 모두 선언 let list3: (number | string)[] = [1,2,3,"4"]; console.log(list3.toString); console.log(list3) 2021. 6. 14.
object "primitive type 이 아닌 것" 을 나타내고 싶을 때 사용하는 타입 primitive type이 아닌 것 not number, string, boolean, bigint, symbol, null or undefined // create by object literal const person1 = {name: "Mark", age: 29} console.log(person1) // person1 is not "object" type // person1 is "{name: string, age: number}" type // create by Object.create const person2 = Object.create({name: 'Mark', age: 33}) console.log(person.. 2021. 6. 14.
Undefined & Null TypeScript 에서, undefined와 null 은 실제로 각각 undefined 및 null 이라는 타입을 가집니다. void와 마찬가지로, 그 자체로는 그다지 유용하지 않습니다. 둘다 소문자만 존재합니다. 컴파일 옵션에서 '--strictNullChecks' 사용하면, null 과 undefined는 void 나 자기 자신들에게만 할당할 수 있다. 이 경우, null과 undefined를 할당할 수 있게 하려면, union type을 이용해야 한다. let Myname: string = null; null 할당할 경우 에러 발생 이유: tsconfig.json 파일 내부에 "strict": true, 항목에서 제어하기 때문에 만약 해당 라인에 주석처리를 하고, 같은 코드를 확인하면 에러가 발생.. 2021. 6. 14.
Primitive Type 1 (Boolean, Number, String Symbol) 오브젝트와 레퍼런스 형태가 안니 실제 값을 저장하는 자료형 프리미티브 형의 내장 함수를 사용한 것은 자바스크립트 처리 방식 덕분 (ES2015 기준) 6가지: boolean, number, String, symbol(ES2015), null, undefined literal 값으로 Primitive 타입의 서브 타입을 나타낼 수 있다. Boolean 아래와 같이 (TypeScript 파일을 작성) let isDone: boolean = false; isDone = true; console.log(typeof isDone); 터미널에 명령어: npx tsc 입력 (같은 이름의 js파일이 생성됨) 명령어 node boolean.js 입력(js파일이 실행, 콘솔 로그 찍히는 것을 확인) Boolean 타입으로.. 2021. 6. 10.