[リニューアル] TypeScriptオールインワン:Part1. 基本文法編
TypeScriptの基本文法を学び、他人が作成した型を分析する方法と、自分で型を作成する方法について学びます。

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 ;




