TypeScript/Basic-Types
TypeScript - void
TypeScript - void
2022.02.07Void function returnVoid(message: string): void { console.log(message); return undefined; // function returnVoid(message: string): void // undefined 만 유일하게 void에 할당될 수 있다. } const r = returnVoid("리턴이 없다."); // const r: void // void 라고 표시된 함수의 리턴을 가지고 어떠한것도 하지 않겠다고 명시적으로 표현하는 것이다. Notion : https://torpid-pasta-de7.notion.site/Basic-Types-7c1eff4fb5f3449e932fb1d157da1f25
TypeScript - never
TypeScript - never
2022.02.07Never function error(message: string): never { throw new Error(message); } function fali() { return error("failed"); } function infinitLoop(): never { while (true) {} } never 타입은 모든 타입의 subtype 이며, 모든 타입에 할당할 수 있다. 하지만, never 에는 그 어떤 것도 할당할 수 없다. any 조차도 never에게 할당할 수 없다. 잘못된 타입을 넣는 실수를 막고자 할 때 사용하기도 한다. let a: string = "Kdong"; if (typeof a !== 'string') { a; // let a: never } declare const b: ..
TypeScript - unknown
TypeScript - unknown
2022.02.07Unknown 응용프로그램을 작성할 때 모르는 변수의 타입을 묘사해야 할 수도 있다. 이러한 값은 동적 콘텐츠(예: 사용자로부터, 또는 우리 API의 모든 값을 의도적으로 수락하기를 원할 수 있다.) 컴파일러와 미래의 코드를 읽는 사람에게 이 변수가 무엇이든 될 수 있음을 알려주는 타입을 제공하기를 원하므로 unknown 타입을 제공한다. declare const maybe: unknown; const aNumber: number = maybe; // Type 'unknown' is not assignable to type 'number'. if (maybe === true) { const aBoolean: boolean = maybe; // const aString: string = maybe; // ..
TypeScript - any
TypeScript - any
2022.02.07Any 어떤 타입이어도 상관없는 타입이다. 이걸 최대한 쓰지 않는게 핵심이다. 왜냐하면 컴파일 타임에 타입 체크가 정상적으로 이뤄지지 않기 때문이다. 그래서 컴파일 옵션 중에는 any를 써야 하는데 쓰지 않으면 오류를 뱉도록 하는 옵션도 있다. noImplicitAny function returnAny(message: any): any { console.log(message); } const any1 = returnAny("리턴은 아무거나"); any1.toString(); any는 게속해서 개체를 통해 전파된다. 결국, 모든 편의는 타입 안전성을 잃는 대가로 온다. 타입 안전성은 TypeScript를 사용하는 주요 동기 중 하나이며, 필요하지 않은 경우에는 any를 사용하지 않도록 해야 한다. let ..
TypeScript - Tuple
TypeScript - Tuple
2022.02.07Tuple 길이가 정해져 있고, 앞뒤의 타입이 정확한, 다를 수 있는 자료형이다. let x: [string, number]; x = ["Kdong", 30]; // 길이, 순서도 다 맞아야 한다. // x = [10, 'Omna']; // 에러가 뜬다. x[2] = "world"; // Type '"world"' is not assignable to type 'undefined'. // Tuple type '[string, number]' of length '2' has no element at index '2'. const person: [string, number] = ["Kdong", 30]; const [first, second] = person; // const [first, second, t..
TypeScript - Array
TypeScript - Array
2022.02.07Array 원래 자바스크립트에서 array는 객체이다. 사용방법 Array 타입[] let list: number[] = [1, 2, 3]; // 이 방법을 가장 많이 사용한다. let list: (number | string)[] = [1, 2, 3, "4"]; // let list: Array = [1, 2, 3]; Notion : https://torpid-pasta-de7.notion.site/Basic-Types-7c1eff4fb5f3449e932fb1d157da1f25
TypeScript - object
TypeScript - object
2022.02.07Object 프리미티브 타입이 아닌 것을 나타내고 싶을 때 사용한다. number, string, boolean, symbol, null undefined 가 아닌걸 할달할 수 있을때 사용가능하다. // create by object literal const person1 = { name: "Kdong", age: 30 }; // person1 is not "object" type. // person1 is "{ name: string, age: number }" type. // create by Object.create(전역내장객체?) const person2 = Object.create({ name: 'Kdong', age: 30}); Notion : https://torpid-pasta-de7.no..
TypeScript - null & undefined
TypeScript - null & undefined
2022.02.07TypeScript에서, undefined와 null은 실제로 각각 undefined 및 null 이라는 타입을 가진다. void와 마찬가지로 그다지 유용하지는 않다. 둘다 소문자만 존재한다. // 이 변수들에 할당할 수 있는 것들은 거의 없다. let u: undefined = undefined; let n: null = null; tsconfig 설정을 하지 않으면 다른 타입의 서브타입의 설정으로 설정된다. number에 null 또는 undefined를 할당할 수 있다는 의미이다. 하지만, 컴파일 옵션에서 ‘—strictNullChecks’를 사용하면, null 과 undefined는 void나 자기 자신들에게만 할당할 수 있다. 이 경우, null 과 undefined를 할당할 수 있게 하려면, ..