generic + extends
3189 ワード
強力なgenericタイプから入力値のタイプを推測します.
これはいいことです.
しかし,すべてのタイプを考慮して関数を記述することは不可能であるため,extendsを用いて範囲を縮小した.
Tを用いてgenericタイプを用い,Tのメソッドlengthがnumberタイプを有するか否かを判別することで入力値を識別する.
これはいいことです.
しかし,すべてのタイプを考慮して関数を記述することは不可能であるため,extendsを用いて範囲を縮小した.
<T extends {length:number}>
このコードの意味はTを用いてgenericタイプを用い,Tのメソッドlengthがnumberタイプを有するか否かを判別することで入力値を識別する.
function longest<T extends {length:number}>(a:T,b:T){
if(a.length>=b.length){
return a;
}else{
return b;
}
}
const longerArray = longest([1,2],[3,4,5]);
const longerString = longest('abc','abcde');
const longerNumber= longest(1,23); // error!
Reference
この問題について(generic + extends), 我々は、より多くの情報をここで見つけました https://velog.io/@zerozoo-front/generic-extendsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol