Photo by Clementina Toso on Unsplash
노마드코더의 Typescript로 블록체인 만들기 강의를 듣고 정리한 내용입니다. 일부 내용이 다를수도 있습니다
case1
[1, 2, 3, 4] + false
//'1,2,3,false'
function divide(a, b) {
return a / b
}
divied(2,3)
//0.66666666666
divide("xxxxxx")
//NaN
case2
const abcd = { name:"abcd"}
abcd.hello();
//Uncaught TypeError: abcd.hello is not a function
case1
case2
강타입 언어
브라우저 -> JavaScript만 인식 -> TS를 JS로 컴파일 후 인식
Node.JS -> JS, TS 둘다 인식
JS로 변환되기 전 에러를 확인해줌
에러가 있을시 JS로 변환(컴파일) 불가
타입스크립트 <-- | --> 변환된 자바스크립트
let a = "hello"
"hello"로 인해서 a의 type이 string으로 인식spongeBob
의 nickname
은 문자열로 지정되어있어서 숫자로 변경 불가
let b : boolean
b 는 boolean 타입으로 지정
"x"
는 string임으로 에러
let b : boolean = false
(o)
let b = false
도 가능
숫자들로만 이루어진 배열
let a : number[] = [1,2,3,4,5]
let b : string[] = ['a','b1','123']
let c : boolean[] = [true]
let a = [1,2];
let b = ['a','b1','123'];
let c = [true]
const player = {
name : "Spongebob"
}
const player1 = {
name : "Patrick",
age : 7
}
모든 player는 name을 가지고 있지만 age는 선택적으로 가지고 싶을 때
const player : {} = {}
const player1 : {
name:string,
age:number
} = {}
const player1 : {
name:string,
age:number
} = {
name:"Spongebob"
}
const player1 : {
name:string,
age?:number
} = {
name:"Spongebob"
}
첫번재 경우(x) | 두번째 경우(o) |
---|---|
![]() | ![]() |
undefined
일 수도 있음을 경고const player1 : {
name:string,
age?:number
} = {
name:"Spongebob"
}
const player2 : {
name:string,
age?:number
} = {
name:"Patrick"
}
const player3 : {
name:string,
age?:number
} = {
name:"Squidward"
}
// class처럼 대문자
type Player = {
name:string,
age?:number
}
const squarePants : Player = {
name:"Spongebob"
}
const star : Player = {
name:"Patrick"
}
const tentacles : Player = {
name:"Squidward"
}
type Name = string;
type Age = number;
type Player = {
name:Name,
age?:Age
}
const squarePants : Player = {
name:"Spongebob",
age:7
}
const star : Player = {
name:"Patrick"
}
const tantacles : Player = {
name:"Squidward"
}
function plyaerMaker(name:string)
type Name = string;
type Age = number;
type Player = {
name:Name,
age?:Age
}
function plyaerMaker(name:string){
return {
//name:name
name
}
}
ts에서 string을 가진 name을 인수로 받아서 타입이 string인 name프로퍼티를 가진 object를 반환함을 알고 있음
bob을 만들때 반환타입이 지정되지 않은 age를 넣는다면 (반환타입이 지정되지 않은 프로퍼티를 반환하라 했을때)
const bob = plyaerMaker("bob")
bob.age = 7
function plyaerMaker(name:string) : Player {
return {
name:name,
}
}
const bob = plyaerMaker("bob")
bob.age = 7
type Name = string;
type Age = number;
type Player = {
name:Name,
age?:Age
}
const playerMaker = (name:string) : Player => ({name})
const bob = playerMaker("bob")
bob.age = 7
: boolean
= truename:string
) {}: Player
{}