TypeScript 타입 기초
JavaScript TypeScriptTypeScript?
자바스크립트의 타입을 강제시키는 언어로, 2012년 마이크로소프트에서 개발됐다. 컴파일 시 자바스크립트로 변경되어 실행된다.
TypeScript는 코드가 시간에 따라 변수가 변경되는 방식을 통한 검사를 사용해 타입을 추론하는데, 아래의 검사를 따른다.
Type | Predicate |
---|---|
string | typeof s === "string" |
number | typeof n === "number" |
boolean | typeof b === "boolean" |
undefined | typeof undefined === "undefined" |
function | typeof f === "function" |
array | Array.isArray(a) |
// 타입 추론 (Types by Inference)
let aaa = 'hello'; // string으로 타입이 추론됨
aaa = 3; // Error
// 타입 명시
let bbb: string = 'world';
// 문자 타입(선언, 할당 분리)
let ccc: string;
ccc = 'hello world!';
// 숫자 타입
let ddd: number = 10;
ddd = 'Evie'; // Error
// bool타입
let eee: boolean = true;
eee = false;
eee = 'false'; // Error
// 배열타입
let fff: number[] = [1, 2, 3, 4, 5];
let ggg: string[] = ['a', 'b', 'c'];
let hhh: (string | number)[] = [1, 2, 3, 4, 4, 'a', 'b'];
// 객체타입
interface IProfile {
name: string;
age: number | string;
breed: string;
}
const profile: IProfile = {
name: 'Evie',
age: 4,
breed: 'Munchkin',
};
profile.age = '4.5살이지롱';
// 함수타입 => 어디서 몇번이든 호출 가능하므로, 타입 추론 불가: 반드시 타입 명시 필요
const add = (num1: number, num2: number, unit: string): string => {
return num1 + num2 + unit;
};
const result = add(1000, 2000, '원');
console.log(result); // '3000원'
// any타입(javascript와 동일)
let foo: any = 'bar';
foo = 'baz';
foo = 3;