私はそれが何のためにあるのかを理解しています-複合型のエイリアスを定義し、それをドキュメントで使用できることの利点を見ることができます。したがって、次のような型を定義できます...
/** @typedef {{x:number, y:number}} */
example.Point;
...そしてそれを使用して、次のような関数を文書化します...
/**
* @param {example.Point} point
* @return {example.Point}
*/
example.functionThatTakesAPointAndReturnsAPoint(point) {
....
}
しかし、私がよくわからないのは、それがドキュメントとコンパイラの静的型チェックにのみ使用されている場合、typedefがJavaScriptのその行を必要とするのはなぜですか?エイリアスは、ドキュメントのコメントブロック内で完全に定義することはできませんか?また、コードを(コンパイルせずに)直接提供した場合、JavaScriptインタープリターはtypedefコメントの後のそのコード行をどのように処理しますか?