number
let numberType: number = 100;
string
let numberType: string = 'string';
boolean
let booleanType: boolean = true;
- 타입스크립트가 기본 제공하는 타입은 소문자로 시작한다.
let object1 : {}
let object2 : object
const person : {
name: string;
age: number;
hobbies: string[];
role: [number, string]
} = {
name: 'haha',
age: 30,
hobbies: ['Sports', 'Cooking'],
role: [2, 'author']
}
let numberArray1 : number[] = [1, 2, 3]
let numberArrau2: Array<number> = [1, 2, 3]
let mixedArray: [string, number] = ['one', 2]
mixedArray.push(3)
enum Role { ADMIN = 5, READ_ONLY = 'READ_ONLY', AUTHOR = 100 };
const person = {
name: 'haha',
age: 30,
hobbies: ['Sports', 'Cooking'],
role: Role.ADMIN
};
if (person.role === Role.ADMIN) {
console.log('is author')
}
function combine (
input1: number | string,
input2: number | string
){
let result: string | number;
if(typeof input1 === 'number' && typeof input2 === 'number') {
result = input1 + input2
} else {
result = input1.toString() + input2.toString();
}
return result
}
const combineAges = combine(30, 40);
let letString = 'hi'
const constString = 'hi'
function combine (
input1: number | string,
input2: number | string,
resultConversion: 'as-number' | 'as-text'
){
if(resultConversion === 'as-number'){
return Number(input1 + input2);
} else {
return input1.toLocaleString() + input1.toLocaleString();
}
}
const combineAges = combine(30, 40, 'as-number');
const combineNames = combine('Max', 'Anna', 'as-text');
type Person = {
age: number;
name: string;
};
function printPerson(info: Person) {
return `${info.name}은 ${info.age}살 입니다`
}
printPerson({age: 30, name: 'haha'})
function add(n1: number, n2: number) :number {
return n1 + n2;
}
// 함수의 return값이 number이다
function printResult(num: number): void {
console.log('Result' + num);
}
function add(n1: number, n2: number):undefined {
console.log(n1 + n2);
return
}
let combineValues : (a: number, nb: number) => number
combineValues = add;
console.log(combineValues(8, 8))
combineValues에 지정해준 함수의 매개변수와 return 값이 함수 add와 일치하므로 combineValues 변수에 함수 add를 할당할 수 있다.
매개변수의 type같은 경우 파라미터의 이름은 같지 않아도 되지만 자리는 맞아야 한다.
콜백함수는 다음과 같이 타입을 명시해줄 수 있다.
function addAndHandle (
n1: number,
n2: number,
cb : (num: number)=>void
){
const result = n1 + n2;
cb(result);
}
addAndHandle(10, 20, (result)=>{
console.log(result)
})
let userInput: unknown
userInput = 5;
userInput = 'hi';
let userInput: unknown;
let userName: string;
userName = userInput;
// 에러 발생 O
let userInput: any;
let userName: string;
userName = userInput;
// 에러 발생 X