문자
// 문자
let str: string; // 나중에 문자 데이터를 할당 해주어야 함
let red: string = "Red";
let green: string = 'Green';
let myColor: string = `My color is ${red}`;
let yourColor: string = 'Your color is ' + green;
숫자
// 숫자
let num: number; // 나중에 할당될 데이터는 숫자
let integer: number = 6;
let float: number = 3.141592;
let infinity: number = Infinity;
let nan: number = NaN;
불린
let isBoolean: boolean;
let isDone: boolean = false;
null, undefined
// Null / Undefined (문자, 숫자, union, intersection의 하위 타입)
let nul: null;
let und: undefined;
nul = null;
배열
// 배열
const fruits: string[] = ['Apple', 'Banana', 'Cherry'];
const numbers: number[] = [1, 2, 3, 4];
const union: (string|number)[] = ['Apple', 1, 2, 'Banana', 3];
객체
// 객체, 재사용성을 위해 interface를 사용하는 경우가 많다.
const obj: object = {};
const arr: object = [];
const func: object = function () {}
interface
interface User {
name: string
age: number;
isValid: boolean;
} // 재사용 가능, interface의 변수명은 파스칼케이스를 사용한다.
const userA: User = {
name: 'HaeRin Kang',
age: 16,
isValid: true
}; // 새로운 기능을 추가할 수 없음
const userB: User = {
name: 'JuHa Kang',
age: 19,
isValid: true
};
함수
// 함수
const add = function(x: number, y: number): number // 반환하는 것의 타입
{
return x + y;
}
const a: number = add(1,2);
const hello = function (): void //반환하는 것의 타입
{
console.log('Hello World!');
}
const h: void = hello(); // Hello World!
any
// Any, 아무거나 할당해도 문제 없음
// 타입스크립트를 쓰는 이유가 없다
// 지양하는 것이 좋다
let hi: any = 'hello world';
hi = 123;
hi = false;
unknown
// Unknown 데이터의 타입을 알기 힘든 상태에서 사용, any보다 엄격
const any1:any = 123;
const u1: unknown = 123;
// 문제가 생기지 않음
const any:any = any1;
const boo:boolean = any1;
const num2:number = any1;
const arr2:string[] = any1;
const obj2: {x: number; y: number} = any1;
// any는 어떤 데이터를 할당해도 상관없으므로 문제 X
// boolean, number, string, arr, obj는 해당하는 타입의 아이템을 할당해주어야하는데 알 수 없는 데이터가 할당되기 때문에 에러 발생
// any type보다 훨씬 더 엄격하게 그 조건을 따져서 가능하거나 가능하지 않은 상황을 우리에게 코드상에서 알려줄 수 있음
// 정확하게 타입을 알 수 없는 경우, unknown 사용 권장
const any2:any = u1;
// const boo2:boolean = u1; // 타입에러 발생
// const num3:number = u1; // 타입에러 발생
// const arr3:string[] = u1; // 타입에러 발생
// const obj3: {x: number; y: number} = u1; // 타입에러 발생
tuple
// Tuple, 길이와 타입이 고정된 배열, 정확한 아이템 개수까지 명시하는 타입. 순서도 잘 지켜주어야함
// 온전하게 순서와 개수가 정해져 있는 아이템을 사용해야할 때 유용하게 사용 가능
const tuple : [string, number, boolean] = ['h',1,true]
// 일반 배열과 비교
const fruit: string[] = ['Apple', 'Banana', 'Cherry'];
const number: number[] = [1, 2, 3, 4];
const unions: (string|number)[] = ['Apple', 1, 2, 'Banana', 3];
void
// Void, 함수에서 return 키워드가 없을 때 사용되는 타입
function Halo (msg: string): void {
console.log(`hello ${msg}`);
}
never
// Never, 절대 발생하지 않을 값, 오류에서 never를 만나면 타입 지정을 잘못한 것은 아닌지 확인해보자
// 직접 사용할 일은 거의 없다.
const nev: [] = [];
union
// Union, 여러 타입을 지정할 수 있게 함(또는 연산자와 비슷한 역할)
// 배열타입에서는 소괄호로 묶어주어야하는 일이 생길 수 있다.
let siuuuu: string|number;
siuuuu = 'siuuu';
siuuuu = 123;
// siuuuu = true; // 타입 에러 발생
intersection
// InterSection(그리고 연산자랑 비슷한 역할)
interface Ronaldo {
name: string,
age: number
}
interface Validation {
isValid: boolean
}
const CR7: Ronaldo&Validation = {
name: 'Cristiano Ronaldo',
age: 38,
isValid: true
}
'TYPESCRIPT' 카테고리의 다른 글
[Typescript] 인터페이스 (interface) (0) | 2023.12.04 |
---|---|
[Typescript] 타입 가드(type guard) (0) | 2023.12.04 |
[Typescript] 타입 단언, 할당 단언 (0) | 2023.12.04 |
[Typescript] 타입 추론 (type inference) (1) | 2023.12.04 |
[TypeScript] 타입스크립트 (0) | 2023.04.28 |
문자
// 문자
let str: string; // 나중에 문자 데이터를 할당 해주어야 함
let red: string = "Red";
let green: string = 'Green';
let myColor: string = `My color is ${red}`;
let yourColor: string = 'Your color is ' + green;
숫자
// 숫자
let num: number; // 나중에 할당될 데이터는 숫자
let integer: number = 6;
let float: number = 3.141592;
let infinity: number = Infinity;
let nan: number = NaN;
불린
let isBoolean: boolean;
let isDone: boolean = false;
null, undefined
// Null / Undefined (문자, 숫자, union, intersection의 하위 타입)
let nul: null;
let und: undefined;
nul = null;
배열
// 배열
const fruits: string[] = ['Apple', 'Banana', 'Cherry'];
const numbers: number[] = [1, 2, 3, 4];
const union: (string|number)[] = ['Apple', 1, 2, 'Banana', 3];
객체
// 객체, 재사용성을 위해 interface를 사용하는 경우가 많다.
const obj: object = {};
const arr: object = [];
const func: object = function () {}
interface
interface User {
name: string
age: number;
isValid: boolean;
} // 재사용 가능, interface의 변수명은 파스칼케이스를 사용한다.
const userA: User = {
name: 'HaeRin Kang',
age: 16,
isValid: true
}; // 새로운 기능을 추가할 수 없음
const userB: User = {
name: 'JuHa Kang',
age: 19,
isValid: true
};
함수
// 함수
const add = function(x: number, y: number): number // 반환하는 것의 타입
{
return x + y;
}
const a: number = add(1,2);
const hello = function (): void //반환하는 것의 타입
{
console.log('Hello World!');
}
const h: void = hello(); // Hello World!
any
// Any, 아무거나 할당해도 문제 없음
// 타입스크립트를 쓰는 이유가 없다
// 지양하는 것이 좋다
let hi: any = 'hello world';
hi = 123;
hi = false;
unknown
// Unknown 데이터의 타입을 알기 힘든 상태에서 사용, any보다 엄격
const any1:any = 123;
const u1: unknown = 123;
// 문제가 생기지 않음
const any:any = any1;
const boo:boolean = any1;
const num2:number = any1;
const arr2:string[] = any1;
const obj2: {x: number; y: number} = any1;
// any는 어떤 데이터를 할당해도 상관없으므로 문제 X
// boolean, number, string, arr, obj는 해당하는 타입의 아이템을 할당해주어야하는데 알 수 없는 데이터가 할당되기 때문에 에러 발생
// any type보다 훨씬 더 엄격하게 그 조건을 따져서 가능하거나 가능하지 않은 상황을 우리에게 코드상에서 알려줄 수 있음
// 정확하게 타입을 알 수 없는 경우, unknown 사용 권장
const any2:any = u1;
// const boo2:boolean = u1; // 타입에러 발생
// const num3:number = u1; // 타입에러 발생
// const arr3:string[] = u1; // 타입에러 발생
// const obj3: {x: number; y: number} = u1; // 타입에러 발생
tuple
// Tuple, 길이와 타입이 고정된 배열, 정확한 아이템 개수까지 명시하는 타입. 순서도 잘 지켜주어야함
// 온전하게 순서와 개수가 정해져 있는 아이템을 사용해야할 때 유용하게 사용 가능
const tuple : [string, number, boolean] = ['h',1,true]
// 일반 배열과 비교
const fruit: string[] = ['Apple', 'Banana', 'Cherry'];
const number: number[] = [1, 2, 3, 4];
const unions: (string|number)[] = ['Apple', 1, 2, 'Banana', 3];
void
// Void, 함수에서 return 키워드가 없을 때 사용되는 타입
function Halo (msg: string): void {
console.log(`hello ${msg}`);
}
never
// Never, 절대 발생하지 않을 값, 오류에서 never를 만나면 타입 지정을 잘못한 것은 아닌지 확인해보자
// 직접 사용할 일은 거의 없다.
const nev: [] = [];
union
// Union, 여러 타입을 지정할 수 있게 함(또는 연산자와 비슷한 역할)
// 배열타입에서는 소괄호로 묶어주어야하는 일이 생길 수 있다.
let siuuuu: string|number;
siuuuu = 'siuuu';
siuuuu = 123;
// siuuuu = true; // 타입 에러 발생
intersection
// InterSection(그리고 연산자랑 비슷한 역할)
interface Ronaldo {
name: string,
age: number
}
interface Validation {
isValid: boolean
}
const CR7: Ronaldo&Validation = {
name: 'Cristiano Ronaldo',
age: 38,
isValid: true
}
'TYPESCRIPT' 카테고리의 다른 글
[Typescript] 인터페이스 (interface) (0) | 2023.12.04 |
---|---|
[Typescript] 타입 가드(type guard) (0) | 2023.12.04 |
[Typescript] 타입 단언, 할당 단언 (0) | 2023.12.04 |
[Typescript] 타입 추론 (type inference) (1) | 2023.12.04 |
[TypeScript] 타입스크립트 (0) | 2023.04.28 |