본문 바로가기
TIL/코딩인터뷰완전분석

타입으로 쓸 수 있는 것을 구분하자

by NOHCODING 2023. 9. 30.
반응형

Data, Math, Error, String, Object, Number, Boolean 등과 같은 내장 객체는 타입으로 사용할 수 있습니다.

//위와 같은

const data : Data = new Data();
const math : Math = Math;
const str : String = 'hello'

function add(x : number, y : number){ return x + y; }

//Number 간의 연산자를 사용할 수 없음
//string에 String을 대입할 수 없음
const str1: String = 'hello';
const str2: String = 'str1';
const obj: Object = 'what';

따라서 string, object, number, boolean, symbol로 통일해서 쓰는 것이 좋습니다!

function add(x: number, y: number){ return x + y; }

const add2: add = (x: number, y: number) => x+y;

에러 메세지를 확인하면 add 값이지만 타입으로 사용했다는 뜻입니다. typeof 값 앞에 붙일 수 있다는 것을 알려줍니다! 변수에는 typeof 앞에 붙여 타입으로 사용할 수 있습니다.

function add(x: number, y: number){ return x + y; }

const add2: typeof add = (x: number, y: number) => x+y;

===============================

타입스크립트에서 String, Object, Number, Boolean, Symbol은 해당 기본 타입을 나타내는 래퍼(wrapper) 객체입니다. 이러한 래퍼 객체들은 프리미티브 타입(string, number, boolean, symbol)에 대한 객체 버전으로 사용될 수 있습니다.

let str: String = new String("Hello");
let num: Number = new Number(42);
let bool: Boolean = new Boolean(true);

프리미티브 타입(string, number, boolean, symbol)을 직접 사용하는 것이 더 흔하며, 래퍼 객체를 명시적으로 사용하는 경우는 드뭅니다.

let primitiveStr: string = "Hello";
let objectStr: String = new String("Hello");

console.log(typeof primitiveStr); // "string"
console.log(typeof objectStr); // "object"

console.log(primitiveStr.length); // 5
console.log(objectStr.length); // 5
반응형

댓글