最終リリース 0.4
1861 ワード
最後のブログでは、コードのまとめ、テスト、PR について書いています.
コード全体をまとめると、次のようになります
ここでの主なタスクの 1 つは、コードが機能しているかどうかをテストして確認することでした.
このプロジェクトは既にテスト フレームワーク
テストケースの書き方も少し難しかったです.書くことができるタイプがたくさんあるので、どのようなケースを書いて比較すればいいのかわからないからです.それから私はインターネットに戻り、他のプロジェクトがどのようにテストされたかを人々が見つけることができるようにしました.概要を理解しようとして実装を開始し、いくつかの追加と削除を行った後、テスト ケースを作成し、テストの準備が整いました.ケースの多くは合格であり、考えられるケースを幅広くカバーしていますが、特殊なケースを見落としていたのではないかと思います.良いことは、99% 以上のケースをカバーしていることですが、見逃したケースの 1% を検索することを楽しみにしています.
テスト ケースは次のようになります.
次に、readme ページを更新し、コミットをプッシュして PR を作成しました
コード全体をまとめると、次のようになります
/**
@example
``
import {isEqualType} from 'ts-extras';
const isEqual = isEqualType<ExpectedType, ActualType>();
``
*/
export type IsEqual<ExpectedType, ActualType> =
(<T>() => T extends ExpectedType ? 1 : 2) extends
(<T>() => T extends ActualType ? 1 : 2)
? true
: false;
function assertType<T extends boolean>() {
}
export function isEqualType<T, G>(): boolean;
export function isEqualType<T, G>(value : G): boolean;
export function isEqualType<T, G>(a: T, b: G){
return assertType<IsEqual<IsEqual<T, G>, true>>();
}
ここでの主なタスクの 1 つは、コードが機能しているかどうかをテストして確認することでした.
このプロジェクトは既にテスト フレームワーク
xo
と ava
を使用しているため、xo と ava のテスト スタイルを確認してテスト ケースを作成するだけで済みました.テストケースの書き方も少し難しかったです.書くことができるタイプがたくさんあるので、どのようなケースを書いて比較すればいいのかわからないからです.それから私はインターネットに戻り、他のプロジェクトがどのようにテストされたかを人々が見つけることができるようにしました.概要を理解しようとして実装を開始し、いくつかの追加と削除を行った後、テスト ケースを作成し、テストの準備が整いました.ケースの多くは合格であり、考えられるケースを幅広くカバーしていますが、特殊なケースを見落としていたのではないかと思います.良いことは、99% 以上のケースをカバーしていることですが、見逃したケースの 1% を検索することを楽しみにしています.
テスト ケースは次のようになります.
import test from 'ava';
import {isEqualType} from '../source/index.js';
test('isEqual()', t => {
t.true(isEqualType<1, 1>());
t.true(isEqualType<any, any>());
t.true(isEqualType<unknown, unknown>());
t.false(isEqualType<{}, {x:1}>());
t.false(isEqualType<1, 2>());
t.false(isEqualType<1, any>());
t.false(isEqualType<1, unknown>());
t.false(isEqualType<any, unknown>());
});
次に、readme ページを更新し、コミットをプッシュして PR を作成しました
Reference
この問題について(最終リリース 0.4), 我々は、より多くの情報をここで見つけました https://dev.to/ritikbheda/final-release-04-2in8テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol