TypeScript의 일반적인 사용 정보

16168 단어 TypeScripttech

TypeScript의 일반적인 사용 정보


일반 매개변수란?


여러 위치에서 유형 레벨을 강제로 제한하는 데 사용되는 자리 표시자 유형입니다.다중 매개변수라고도 합니다.

설치 예제 ①(단일 Generic 유형을 사용하는 경우)


type Filter = {
 //※<T>は、単なる慣例であるため、代わりに任意の名前を使用することもできます。
 <T>(array: T[], func: (item: T) => boolean): T[]
}

const filter: Filter = (array, func) => {
   const newArray = array.filter((item) => (
     func(item)
   ))
   return newArray
};

//「T」はnumber型になります(2より小さい値のみにフィルタリング)
filter([1, 2, 3], _ => _ > 2)

//「T」はstring型になります(bでない値のみにフィルタリング)
filter(['a', 'b', 'c'], _ => _!== 'b')
상술한 내용을 정리하면 다음과 같다.

  • 우선, 상기 Filter 함수는 일반적인 매개 변수 를 사용하여 부분에 들어간 유형을 TypeScript로 추론하고 제한 유형으로 정의한다.

  • Filter 함수를 호출할 때의 유형 정의로 Filter형 정의의 유형(일반 매개 변수)을 읽고 매개 변수의 값에 따라 TypeScript 추론 유형을 추론형으로 대체합니다.

  • Filter 함수 처리를 실행하여 각각 다음 값을 되돌려줍니다
  • // 返り値は、2より小さい値のみにフィルタリングされるので[3]となる
    filter([1, 2, 3], _ => _ > 2)
    
    // 返り値は、bでない値のみにフィルタリングされるので["a", "c"]となる
    filter(['a', 'b'], _ => _!== 'b')
    

    설치 예제 ②(여러 일반 유형을 사용하는 경우)


    type Map = {
      <T, U>(array: T[], func: (item: T) => U): U[]
    }
    
    const map: Map = (array, func) =>{
      const newArray = array.map((item) => (
        func(item)
      ))
      return newArray
    };
    
    map([1, 2, 3], _ =>  String(_ + "回目")
    
    상술한 내용을 정리하면 다음과 같다.

  • 우선, 상기 맵 함수는 일반적인 매개 변수 를 사용하여 부분에 들어간 유형을 TypeScript로 추론하고 제한 유형으로 정의한다.

  • 맵 함수를 호출할 때 유형 정의로 맵 유형 정의 유형(일반 매개변수)을 읽고 매개변수 값에 따라 Type Script 추론 유형을 추론으로 대체합니다.

  • 맵 함수 처리를 실행하고 다음 값을 각각 되돌려줍니다
  • // 返り値は、Number型配列からString型配列の["1回目", "2回目", "3回目"]となる
    map([1, 2, 3], _ =>  String(_ + "回目")
    

    어디서 제니릭을 선고할 수 있습니까?


    다음 모드를 사용하여 양수 관계식을 선언할 수 있습니다.

    모드 1


    T의 범위는 각 서명에만 한정되며, 서명을 완전히 호출합니다.T의 역할 범위는 하나의 서명에만 한정되어 있기 때문에 Filter형 함수를 호출할 때 T를 구체적인 형식으로 설정합니다.
    type Filter ={
      <T>(array: T[], func:(item: T) => boolean): T[]
    }
    
    // 省略形の書き方
    type Filter = <T>(array: T[], func:(item: T) => boolean): T[]
    

    모드 2


    T의 범위는 서명 전체에 미치며 서명을 완전히 호출합니다.T(특정 서명 유형의 일부가 아님)가 Filter 유형의 일부로 선언되었으므로 Filter 함수를 선언할 때 T를 특정 유형으로 설정합니다.
    type Filter<T> ={
      <T>(array: T[], func:(item: T) => boolean): T[]
    }
    	  
    // 省略形の書き方	  
    type Filter<T> = <T>(array: T[], func:(item: T) => boolean): T[]
    

    모드 3


    이름 함수의 호출 서명입니다.T의 범위는 그 서명에만 한정됩니다.Filter 함수를 호출하는 시점에서 T를 특정 유형으로 설정합니다.
    function filter<T>(array: T[], func:(item: T) => boolean): T[]
    

    참고서


    https://www.oreilly.co.jp/books/9784873119045/

    좋은 웹페이지 즐겨찾기