개인적으로 STL 사용하면서 기억안나던 부분은 여기에 정리

 

string find

=> string().find()

발견 : index 반환

실패 : string::no position 

'algorithm > algorithm' 카테고리의 다른 글

JS / Queue  (0) 2023.08.01
Binary , lower , upper searching  (0) 2020.09.24
이분 매칭(Bipartite Matching)  (0) 2020.06.22
네트워크 플로우(Maximum flow)  (0) 2020.06.22
위상 정렬(Topological Sort)  (0) 2020.06.22

파라미터 value의 경우 string 타입의 변수로만 사용가능하다.

파라미터의 타입을 string 뿐만 아니라 원하는 다른 타입으로 선언하고자 할 때는

대표적으로 any를 생각할 수 있지만, 좀 더 원하는 구체적인 타입을 지정해주고자 할 때는 | 연산자를 사용할 수 있다

이를 Union 타입이라고 하며, 하나 이상의 원하는 타입을 정해줄 수 있는 방법이다

 

유니온 뿐만 아니라 이러한 타입스크립트의 강점 중 하나는 타입 가드가 가능하다는 것

즉 특정 타입으로 타입의 범위를 좁혀나가 타입에 맞는 속성들을 바로바로 사용할 수 있다는 것이 편하다

 

인터페이스를 사용했을 때의 특징

여러 개의 인터페이스를 사용해서 매개변수로 사용할 때는 

A라는 변수가 특정 타입으로 확정되지 않은 이상

A가 접근할 수 있는 속성값은 유니온으로 설정한 모든 인터페이스에서 공통적으로 가진 속성만 뷰접근이 가능하다

타입스크립트가 변수의 속성값에 대해서 접근할 수 있는 프로퍼티는 모든 유니온을 만족시키는 공통된 프로퍼티이다

 

유니온 타입과 반대되는 연산자로 인터섹션 타입이 있다

인터섹션 타입은 & 연산자를 사용한다

유니온의 | 을 생각해본다면 인터섹션 타입은 어떤지 쉽게 예상할 수 있을 것 같다

변수 value의 뷰프로퍼티를 확인해보면 interface person과 user의 모든 속성을 사용할 수 있음을 확인할 수 있다

여기서 name 프로퍼티의 경우 공통된 속성이기 때문에 name으로 커서를 옮기면

name: string 이라고 표현되어 있고,

age로 커서를 옮기면 person.age : number을,

email로 커서를 옮기면 user.email : string으로

어떤 인터페이스의 속성과 타입인지 확인할 수 있다

 

유니온 타입과 인터섹션 타입은 함수를 호출할 때 약간의 차이가 있다

이 차이 때문에 주로 유니온 타입이 좀 더 선호되는 편이다

 

유니온 타입을 사용한 함수를 호출할 때는

유니온으로 선언한 타입 중 하나를 만족시켜서 호출하면 된다. 아래를 보자

 

인터섹션 타입을 사용한 함수를 호출할 때는

선언한 모든 타입을 만족시켜야 한다는 규칙이 있다

즉, person과 user를 인터섹션으로 사용한다면 호출할 떄 이에 필요한 모든 속성이 필요하게 된다

 

첫번째 호출은 age라는 속성을 사용하지 않았기 때문에 에러가 발생하는 것을 볼 수 있다

두번째 호출처럼 모든 속성을 만족시켜야 한다

'web > Typescript' 카테고리의 다른 글

Type Aliases  (0) 2021.01.13
Interface  (0) 2021.01.13

타입 별칭은 특정 타입이나 인터페이스를 참조할 수 있는 타입 변수를 의미한다

 

인터페이스를 아래와 같이 사용했었다

interface Person{
	name: string,
	age: number,
}

위를 타입별칭으로 동일하게 나타내면 다음과 같다

type Person = {
	name:string,
   	age:number,
}

인터페이스와 타입의 첫번째 차이점은 타입 내부 속성을 어떤식으로 확인할 수 있는가 인데,

인터페이스 타입를 코드를 작성해서 프리뷰를 보면 아래처럼 확인된다

타입 별칭 코드를 작성해서 프리뷰를 보면 아래와 같이 확인된다

 

인터페이스와 타입 별칭의 두번째 차이점은 상속의 가능여부

인터페이스는 중복되는 코드에 대해서 상속을 이용할 수 있지만

타입은 상속, 즉 확장이 불가능하다

 

확장이 용이한 소프트웨어 작성을 위해 가능한 인터페이스를 사용하자

 

'web > Typescript' 카테고리의 다른 글

연산자를 이용한 타입  (0) 2021.01.14
Interface  (0) 2021.01.13

interface를 활용하여 원하는 타입을 선언하고 이를 활용할 수 있다

 

변수의 타입을 선언하는 형태

interface User {
	name: string,
    age: number,
    info: object,
    friends: Array<string> 또는 friends: string[]
}

변수타입을 함수에 활용하는 형태

function func(param:User){
	//...
}

param의 타입을 위에서 선언한 User 타입을 지정한다는 의미이다

 

함수의 반환값 타입

function fun(...): User{
	return resType;
}

이 때 resType 의 타입은 User 타입이 된다

 

함수 파라미터에 타입이 지정된 경우

함수를 호출할 때는 파라미터 타입을 반드시 갖추어야 한다

 

인터페이스 확장

중복되는 속성에 대해서 상속이 가능하다

interface Person{
	name: string,
    age: number,
}

interface developer{
	name: string,
    age: number,
    language: string,
}

interface developer extends Person{
	language: string,
}

developer 인터페이스는 Person 인터페이스를 상속받아 사용하는 형태

 

 

'web > Typescript' 카테고리의 다른 글

연산자를 이용한 타입  (0) 2021.01.14
Type Aliases  (0) 2021.01.13

+ Recent posts