반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- python
- C++
- Doitvue.js입문
- 코테연습
- Medium
- 프로그래밍
- web
- Level2
- 배열
- 리트코드
- CS
- 카카오
- LeetCode
- sql
- 웹프로그래밍
- javascript
- 백준
- OS
- Level3
- 리액트
- 자바스크립트
- 동적계획법
- 프로그래머스
- 고득점Kit
- typescript
- VUE
- 파이썬
- react
- Level1
- dp
Archives
- Today
- Total
[TypeScript] Literal Type, Type alias, void, 함수, Unknown, Never 본문
Web/TypeScript
[TypeScript] Literal Type, Type alias, void, 함수, Unknown, Never
미니모아 2022. 8. 10. 18:37반응형
Literal Type
특정한 값을 변수의 타입으로 지정하는 것을 리터럴 타입이라고 한다.
const foo:string;
string
, number
외에 특정한 값을 타입으로 지정할 수도 있으며 union
타입과도 같이 사용할 수 있다.
resultConversion: 'as-number' | 'as-text'
Type alias
사용하고자 하는 타입을 별칭으로 지정하여 재사용할 수 있다.
type ConversionDescriptor = 'as-number' | 'as-text';
타입 객체를 생성하는 것도 가능하다.
type User = {name: string; age: number};
function greet(user:User) {
console.log(`Hi I'm ${user.name}`);
}
function isOlder(user: User, checkAge: number) {
return checkAge > user.age;
}
void
반환문이 없을 때 반환 타입은 void로 설정된다.
undefined
은 실제 값을 반환 하지 않는 타입으로서 따로 존재한다. 두 함수의 반환 값은 다르다.
function printResult(num: number): void {
console.log('Result: ' + num);
}
function printResult(num: number): undefined {
console.log('Result: ' + num);
return;
}
함수 타입
인수와 반환 값의 타입을 지정할 수 있다.
let combineValues: (a: number, b: number) => number;
콜백 함수 타입
function addAndHandle(n1: number, n2: number, cb:(num: number) => void) {
const result = n1 + n2;
cb(result);
}
addAndHandle(10, 20, (result) => {
console.log(result);
});
콜백 함수는 전달되는 인수가 반환 값을 기대하지 않는 경우에도 값을 반환할 수 있다. 따라서 아래 코드는 컴파일을 통과한다.
function addAndHandle(n1: number, n2: number, cb:(num: number) => void) {
const result = n1 + n2;
cb(result);
}
addAndHandle(10, 20, (result) => {
console.log(result);
return result;
});
Unknown
any
처럼 모든 타입의 값을 저장할 수 있지만 타입이 고정된 다른 변수에 unknown
변수를 할당할 경우 추가적인 타입 체크가 필요하다. any
보다 제한적이다.
let userInput: unknown;
let userName: string;
userInput = 5;
userInput = 'Max';
//userName = userInput;
if (typeof userInput === 'string') {
userName = userInput;
}
Never
절대 값을 반환하지 않는 함수의 경우 해당 내용을 명시하기 위해 never
타입을 반환값으로 사용할 수 있다.
function generateError(messgae: string, code: number): never {
//throw {message: messgae, errorCode: code};
while(true){}
}
const result = generateError('An error occurred!', 500);
console.log(result);
반응형
'Web > TypeScript' 카테고리의 다른 글
[TypeScript] 고급타입 (0) | 2022.08.24 |
---|---|
[TypeScript] 인터페이스 (0) | 2022.08.19 |
[TypeScript] 클래스 (0) | 2022.08.17 |
[TypeScript] TypeScript 컴파일러 (0) | 2022.08.12 |
Enum, Any, Union (0) | 2022.08.04 |
Comments