TypeScript 関数のパラメータは反変であるべき
string | number は string のスーパークラスなので、child に (_: string) => console.log('child’)は入れられるべきではない。
type ParentFunc = (_: string | number) => void
const child: ParentFunc = (_: string) => console.log('child')
strictFunctionTypesがtrueだと、関数のパラメータを反変で制限してくれるので、上記はコンパイル時にエラーになるので安全。
最近のコメント