Javascript vs Typescript
- 자바스크립트의 타입 안정성을 보완해서 나온게 타입스크립트이다
- 런타임 에러를 자바스크립트는 잡아내지 못함 —> 타입의 안정성이 없음
- but, 타입스크립트는 애초에 코드의 런타임 전에 에러를 감지함 —> 타입의 안정성 높다
let a = [1,2,3];
a.push = "4"; // 이경우에 js 에서는 에러가 x
// but, typescript에서 array가 number array로 지정되기때문에 string은 push 될수 x
—> 이 예시가 js 와 ts 의 차이다
Typescript type
- optional primitive
ex)
const player = {
name: string,
age: number, // player의 타입 지정
} = {
name: "hana",
age?: 20,
} // age 가 있을때만 선택적으로 할당할수있음
하지만 만약, palyer 1, 2, 3 … 이렇게 중복이 될경우에는 타입을 한번에 지정해주는것이 효율적이다.
- Alias type
ex)
type player = {
name:string,
age?:number
}
const player1 : player = {
name:"hana"
};
const player2 : player = {
name:"nico",
age:20
};
- 함수에서 return 의 type 지정하기
function playerMaker(name:string): player {
return {
name;
}
} // 인수로 받는 name 에 string type을 지정, return의 객체에는 palyer type 지정할수있음
(화살표 함수의 경우)
playerMaker = (name:string): player => {
return {name};
}
- read only
- 재할당이 불가능함
type player = {
readonly name: string,
age?: number
}
**player.name = "hana"; // 불가능, 왜냐 readonly 이기 때문에!**
- Tuple
- 배열에 정해진 요소의 개수를 가지며, 그 요소의 순서마다 타입 지정 가능
- api 가 밑의 형식같은 array 를 준다면 확인해봐야한다.
const player: [string, number, boolean] = ["name", 20, true]
- any
- any를 사용하면 ts의 보호장치를 잃게된다. —> ts에서 빠져나올때 (예외처리?) 사용할수있음
const a: any[] = [1,2,3]
const b: any = true
a + b // 가능
- unknown
- 어떤 type 인지 모를때 사용 —> 그래도 보호받고 있음
let b: unknown; // b가 어떤 type 인지 모를때
- void
- 아무것도 return 하지 않는 함수의 type
- 따로 지정할 필요는 x → 자동으로 인식됨
const hello = () => {
console.log("hello")
} // hello() 의 type --> void
- never
- 절대로 실행되지 않아야할 금지type?
cosnt player = (name : string | number) => {
if(typeOf name === "string"){ }
else if (typeOf name === "number) { }
else {
name // 이 name type --> never 이 됨. (절대 실행되지않아야한다는 뜻)
}
}
'개발' 카테고리의 다른 글
| Typescript - Functions (0) | 2022.08.25 |
|---|---|
| < html > vs code에서 유용한 html 자동완성 (0) | 2022.06.24 |
| <html> herf, src, url 차이점 (0) | 2022.06.24 |
| < React > react 에서 Event 다루기 (0) | 2022.06.24 |
| < React > Router 정리 (1) | 2022.06.24 |