새로운 타입을 내가 정의할 수 있다
type Text = string;
type Num = number;
const name:Text = 'sumin';
const address:Text = 'korea';
type Student = {
name: string;
age: number;
};
const student:Student = {
name: 'sumin',
age: 12,
};
type Point = {
x:number,
y:number
};
const startPoint:Point = {x:1, y:1};
const endPoint:Point = {x:10 y:15};
// 정의한 데이터를 꼭 써줘야함 안그러면 오류
객체의 타입을 지정할 수 있는 방법
interface Point {
x:number,
y:number
};
const startPoint:Point = {x:1, y:1};
const endPoint:Point = {x:10 y:15};
기능상에 차이는 거의 없다
타입을 문자열로 정의
범용적인 string, number 타입이 아닌 정확한 형태의 값을 타입으로 지정 가능
type Name = "name";
let suminName: Name;
suminName = 'name';
// 어떠한 문자열을 넣어서는 안됨
// 정의된 'name'만 가능
type JSON = 'json';
const json: JSON = 'json';
let age:number = 1;
age = 5; // OK
// -----
let age:3 = 3;
age = 3; // OK
age = 5; // Error!
let name:string = "yeonuk";
name = "yeonwook" // OK
// ----
let name:"yeonuk" = "yeonuk";
name = "yeonuk" // OK
name = "yeonwook" // Error!
대부분은 literal type으로 추론
const age = 1;
const name = "yeonuk"
const numbers = [1,2,3] // number[]
const numbers = [1,2,3] as const // [1,2,3]
const obj = {x:1, y:2} // {x:number, y:number}
const obj = {x:1, y:2} as const // {x:1, y:2}