기존 자바스크립트
let variable1 = 1;
let variable2 = '1';
let variable3 = [1, 2];
let variable4 = ['1', '2'];
let variable5 = true;
let variable6 = {name: 'kim'};
타입스크립트
// number 타입 지정
let variable1 :number = 1;
// string 타입 지정
let variable2 :string = '1';
// number를 원소로 하는 array 타입 지정
let variable3 :number[] = [1, 2];
// string을 원소로 하는 array 타입 지정
let variable4 :string[] = ['1', '2'];
// boolean 타입 지정
let variable5 :boolean = true;
// object 타입 지정
let variable6 :{name: string} = {name: 'kim'};
// 다양한 타입이 들어올 수 있게 하려면
let variable7 :string|number = 'kim'; // 숫자 또는 문자 모두 가능
type
키워드 사용type Mytype = string | number; // 타입명은 일반 변수와의 구분을 위해 대문자로 시작
let variable :Mytype = 'kim';
type Member = [number, boolean];
let john:Member= [12, false];
type Member2 = { // object에 속성이 많은 경우, 일일이 타입을 명시하지 않고,
[key :string] :string, // 문자로 된 모든 속성은 문자 타입의 값만 가능하도록 설정 가능
}
let mathew:Member2 = { name: 'mathew', age: '12'}
function func(x :number) :number {
return x * 3;
}
// func('3') // 에러 발생(타입이 불일치)
func(3) // 숫자 9 출력
class User {
let name :string;
constructor(name:string) {
this.name = name;
}
}