강의

멘토링

로드맵

BEST
Programming

/

Programming Language

[リニューアル] TypeScriptオールインワン:Part1. 基本文法編

TypeScriptの基本文法を学び、他人が作成した型を分析する方法と、自分で型を作成する方法について学びます。

難易度 初級

受講期間 無制限

  • zerocho
TypeScript
TypeScript
TypeScript
TypeScript
zerocho님의 프로필 이미지

修正済み

TypeScript 5.1リリースbind関数の変更点

bind < T >( this : T , thisArg: ThisParameterType< T >): OmitThisParameter< T > ;

bind < T , A extends any [] , B extends any [] , R >( this : ( this : T , ...args: [... A , ... B ]) => R , thisArg: T , ...args: A ): (...args: B ) => R ;

 

bind関数が簡単になりました。 [...A、...B]が混乱しています。 Aは既存の関数にbindする引数であり、Bはbindしていない引数であると考えればよい。つまり、もともと関数はA、Bをすべてパラメータとして持っていたら、新しくbindした関数ではBだけがさらに必要になったのです。

const sum = (a1, a2, b1, b2) => a1 + a2 + b1 + b2;
const sum1 = sum.bind(null, 1, 2); // a1에 1, a2에 2를 bind
sum1(3, 4); // 1 + 2 + 3 + 4 === 3, a1, a2는 이미 bind되었으므로 남은 b1, b2만 제공

従来は次のようでした。

bind < T , A0 , A extends any [] , R >( this : ( this : T , arg0: A0 , ...args: A ) => R , thisArg: T , arg0: A0 ): (... args: A )=> R ;
bind < T , A0 , A1 , A extends any [] , R >( this : ( this : T , arg0: A0 , arg1: A1 , ...args: A ) => R , thisArg: T , arg0: A0 arg1: A1 ):(... args: A )=> R ;
bind < T , A0 , A1 , A2 , A extends any [] , R >( this : ( this : T , arg0: A0 , arg1: A1 , arg2: A2 , ...args: A ) => R , thisArg : T arg0: A0 arg1: A1 arg2: A2 ): (...args: A ) => R ;
bind < T , A0 , A1 , A2 , A3 , A extends any [] , R >( this : ( this : T , arg0: A0 , arg1: A1 , arg2: A2 , arg3: A3 , ...args: A ) => R , thisArg: T , arg0: A0 , arg1: A1 arg2: A2 arg3: A3 ):(... args: A )=> R ;
bind < T , AX , R >( this : ( this : T , ...args: AX []) => R , thisArg: T , ...args: AX []): (...args: AX []) => R ;

コメント