타입 스크립트의 기본 타입에는 크게 12가지가 있다.
타입스크립트에서는 콜론(:)을 사용하여 타입을 정의한다.
< 자바스크립트에서 문자열 선언 >
const str = 'hello';
위 코드는 자바스크립트에서 문자열을 선언하는 방법이었다.
< 타입스크립트에서 문자열 선언 >
const str: string = 'hello';
반면 타입스크립트에서는 변수명 뒤에 콜론(:)을 사용하여 타입을 지정할 수 있다.
해당 예시는 string 타입으로 변수를 정의한 예시이다.
< number 선언 >
let num: number = 10;
< 배열 선언 >
let arr: Array<number> = [1, 2, 3]; let names: Array<string> = ['A', 'B', 'C']; let items: number[] = [1, 2, 3];
< 튜플 >
배열의 특정 인덱스에서 그 인덱스의 타입까지 정의할 수 있는 경우 튜플로 선언할 수 있다.
즉, 모든 인덱스에 타입이 정의되어 있는 경우이다.
let address: [string, string, number] = ['gangnam', 'pangyo', 10];
< 객체 >
간단한 객체는 object를 이용해 선언할 수 있다.
하지만, 객체를 구체적으로 정의하고 싶은 경우가 존재할 것이다.
이때는 :object를 사용하는 것이 아닌, 콜론(:) 이후 중괄호{ ... }를 이용해 객체를 열어주고, 내부에 속성의 타입을 지정해주면 된다.
let obj: object = {}; // let person: object = { // name: "capt", // age: 100, // }; let person: {name: string, age: number } = { name: 'guswjd', age: 24 }
< 진위값 >
let show: boolean = true;
< 함수의 파라미터에 타입을 정의하는 방식 >
function sum(a: number, b: number){ return a + b; } sum(10, 20);
< 함수의 반환 값에 타입을 정의하는 방식 >
function sum(): number{ return 10; }
함수의 반환 값에 타입을 정의하는 경우 반환 값(return)이 무조건 해당 타입으로 정의되어 있어야 한다.
아니면 오류가 발생할 것이다.
< 함수에 타입을 정의하는 방식 >
function sum(a: number, b: number): number{ return a + b; }
자바스크립트의 경우 함수에 있는 파라미터의 갯수보다 더 많은 인자가 들어올 경우 문제가 되지 않는다.
function sum(a, b){ return a + b; } sum(10, 20, 30, 40, 50);
하지만 타입스크립트는 아니다.
타입스크립트에서는 파라미터의 갯수보다 더 많은 인자가 들어올 경우, 불필요한 인자가 들어와 있다고 오류를 발생시킨다.
즉, 타입스크립트는 자바스크립트보다 특정 함수 사용에 있어서 더 엄격하게 체크를 해준다.
앞서 타입을 정의하면 무조건 해당 함수의 파라미터와 인자의 개수가 일치해야만 들어올 수 있었다.
하지만 때때로 우리는 파라미터의 개수만큼 인자를 넘기지 않을 상황이 생길 것이다.
특정 파라미터를 선택적으로 사용해야 할 상황이 발생할 것이다.
이때 물음표(?)를 추가하여 이 상황을 해결할 수 있다.
function log(a: string, b?:string){ } log('gus', 'wjd'); log('gus');
위 코드처럼 콜론(:) 앞에 물음표(?)를 사용하면 정의된 매개변수 b는 꼭 인자로 넘기지 않아도 되는 것을 의미한다.
따라서 인자를 한 개만 넘겨줘도 오류가 발생하지 않을 것이다.
[TypeScript] 변수와 함수 기본 타입 정의
타입스크립트 기본 타입
타입 스크립트의 기본 타입에는 크게 12가지가 있다.
타입스크립트에서 변수 선언 및 타입 정의하기
타입스크립트에서는 콜론(:)을 사용하여 타입을 정의한다.
< 자바스크립트에서 문자열 선언 >
위 코드는 자바스크립트에서 문자열을 선언하는 방법이었다.
< 타입스크립트에서 문자열 선언 >
반면 타입스크립트에서는 변수명 뒤에 콜론(:)을 사용하여 타입을 지정할 수 있다.
해당 예시는 string 타입으로 변수를 정의한 예시이다.
< number 선언 >
< 배열 선언 >
< 튜플 >
배열의 특정 인덱스에서 그 인덱스의 타입까지 정의할 수 있는 경우 튜플로 선언할 수 있다.
즉, 모든 인덱스에 타입이 정의되어 있는 경우이다.
< 객체 >
간단한 객체는 object를 이용해 선언할 수 있다.
하지만, 객체를 구체적으로 정의하고 싶은 경우가 존재할 것이다.
이때는 :object를 사용하는 것이 아닌, 콜론(:) 이후 중괄호{ ... }를 이용해 객체를 열어주고, 내부에 속성의 타입을 지정해주면 된다.
< 진위값 >
함수 타입
< 함수의 파라미터에 타입을 정의하는 방식 >
< 함수의 반환 값에 타입을 정의하는 방식 >
함수의 반환 값에 타입을 정의하는 경우 반환 값(return)이 무조건 해당 타입으로 정의되어 있어야 한다.
아니면 오류가 발생할 것이다.
< 함수에 타입을 정의하는 방식 >
함수 타입 - 파라미터를 제한하는 특성
자바스크립트의 경우 함수에 있는 파라미터의 갯수보다 더 많은 인자가 들어올 경우 문제가 되지 않는다.
하지만 타입스크립트는 아니다.
타입스크립트에서는 파라미터의 갯수보다 더 많은 인자가 들어올 경우, 불필요한 인자가 들어와 있다고 오류를 발생시킨다.
즉, 타입스크립트는 자바스크립트보다 특정 함수 사용에 있어서 더 엄격하게 체크를 해준다.
함수 타입 - optional 파라미터(선택적 파라미터)
앞서 타입을 정의하면 무조건 해당 함수의 파라미터와 인자의 개수가 일치해야만 들어올 수 있었다.
하지만 때때로 우리는 파라미터의 개수만큼 인자를 넘기지 않을 상황이 생길 것이다.
특정 파라미터를 선택적으로 사용해야 할 상황이 발생할 것이다.
이때 물음표(?)를 추가하여 이 상황을 해결할 수 있다.
위 코드처럼 콜론(:) 앞에 물음표(?)를 사용하면 정의된 매개변수 b는 꼭 인자로 넘기지 않아도 되는 것을 의미한다.
따라서 인자를 한 개만 넘겨줘도 오류가 발생하지 않을 것이다.
'Front-End > TypeScript' 카테고리의 다른 글