保守を引き継ぎしたangularのプロジェクトでstrictNullChecksもnoImplicitAnyも設定されていなかったから、徹底的にリファクタリングしてようやくTypeScriptの型エラーを消して、次はfullTemplateTypeCheckとstrictTemplatesとでテンプレート側も型チェックだと思ったら見つかった型定義。
このプロジェクトはサーバー側のFlaskもPythonの型ヒントのやり方を一切理解せずに自己流の型ヒントをつけていてびっくりしたが、TypeScript側にもあったとは。
型定義のルールを全く理解せずに型をつけて、型チェックするとコンパイルが通らないから型チェックを甘くした、というところなのだろうか。 コメントで実装の説明をすると、実装を変更したときコメントを直さなかったゆえにコメントが嘘になってしまうことがある。それと比べると型の方が、 嘘になったらコンパイルできなくなるはずなのでありがたいはずなのだが、こんなことされたらお手上げだ、
自分で自分の足を撃たないための仕組みというが、人間の創造性を甘く見てはいけない。いつだって人間は自分で自分の足を撃つ方法を見つけるのだ。
export class AlertComponent { // 本当は@Input() type: 'primary' | 'accent' | 'warn';と書きたかったのだろう。 @Input() type: 'primary | accent | warn'; }
使い方ヒント: 「これは臭う」という行を見付けたら、各行のをクリックしてマーキングしておきましょう(要Twitter OAuth認証)
まだコメントがありません。最初にコメントを残しませんか?
コメント投稿には、twitter認証が必要です。
Twitter認証