일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 타입스크립트
- 퍼블리셔
- rn webview page loading
- React Native navigation
- react native safeArea
- 임고미
- 리액트
- React-Native IOS
- React-Native 공부
- 트윈맥스 기초
- 웹뷰 페이지 로딩
- styled component
- 프론트앤드
- safari wiondow.open
- SafeArea 커스텀
- react이론
- reactnative 웹뷰 페이지 로딩
- JS
- scrollIntoView scrollTo
- js 특정 위치로 이동
- styled component 작동안함
- styled component 작동 안될때
- react
- input 숫자입력
- styled component is not working
- React Native SafeArea Custom
- RN navitate push
- gsap 기초
- gsap
- slick slider 간격
- Today
- Total
개발공부 임고미
[Typescript] 타입의 종류 - 원시타입 / 객체타입 / 기타 본문
목차
0. 들어가며 |
1. 알 고쓰자 TypeScript : 왜 타스인가 ? |
2. 타입의 종류 |
1. 원시타입
string, number, BigInt, boolean, null, undefined, symbol
1 ) string
let str: string;
str = '123';
str = 123; // Error
2) number
let num: number;
num = 123;
num = 123.456;
num = '123'; // Error
3) BigInt
원시 값이 안정적으로 나타낼 수 있는 최대치인 2^53 - 1보다 큰 정수를 표현할 수 있는 내장 객체입니다.
const theBiggestInt = 9007199254740991n;
const alsoHuge = BigInt(9007199254740991);
// ↪ 9007199254740991n
const hugeString = BigInt("9007199254740991");
// ↪ 9007199254740991n
const hugeHex = BigInt("0x1fffffffffffff");
// ↪ 9007199254740991n
const hugeBin = BigInt("0b11111111111111111111111111111111111111111111111111111");
var bool: boolean;
bool = true;
bool = false;
bool = 'false'; // Error
5) undefined
값이 비었는지 안비었는지 결정되지 않은 상태로, 타입 선언으로는 잘 사용 x (undefined이외의 값이 들어오면 전부다 에러가 나기때문에 타입으로는 잘 사용안합니다.)
let un: undefined;
un = undefined;
un = 1 //error
6) null
값이 명확하게 없다는것을 표현
undefined | null |
타입에서 값이 없을 수 있는 경우? | |
o (테이터 타입이 없거나, 아직 결정되지 않은 경우) | x |
값이 있거나 없거나? | |
x | o |
2. 객체타입
object, array
7) object
타입정의로 잘 사용하지 않습니다. 왜냐면, 뭐든 object면 다 된다는건데 TypeScript에서는 좀 더 구체적으로 적어주는게 좋기때문입니다.
let obj: object = { name: 'NAME', age: 29 };
obj = { A: 'A', B: 'B' };
8) Array
array로 쓰기보다는, string[] / number[] 등으로 많이 선언됩니다.
2. 기타
9) unknown
리턴값이라던지 타입을 정해주지 않았을때 사용 (어떤 타입이든 허용)
let valueNum : unknown = 10;
let valueStr : unknown = 'unknown';
console.log(valueNum.length); // error
console.log(valueStr.length); // error
unknown 타입으로 변수를 정의하면 컴파일러에게 '변수의 타입이 unknown이라 어떤 값이든 올 수 있습니다,
그래서 엄격하게 검사해라'라고 요청하는 것과 동일합니다.
이 경우 조건문을 함께 사용해주면 에러가 사라집니다.
let valueNum: unknown = 10;
let valueStr: unknown = "unknown";
if (typeof valueNum === "number") {
console.log(valueNum.length); // 에러는 사라졌지만, number type에는 length가 없어서 error발생
}
if (typeof valueStr === "string") {
console.log(valueStr.length);
}
10) any
어떤 것이든 다 됨
🛎 unknown과 any의 차이? unknown은 아직 결정되지 않은 타입이라면, any는 말 그대로 뭐든 허용한다는 의미 따라서 unknown은 조건으로 타입체크를 해서 작업해야하므로 any보다는 안전한 타입니다. |
11) void
함수에서 아무것도 리턴하지 않는 경우
- 생략 가능한 타입으로 타입설정으로는 잘 쓰지 않는 편이다.
12) never
함수에서 절대 리턴하지 않는경우에 선언하는 경우
참고 : https://developer-talk.tistory.com/198