«Неверный синтаксис типа» для средства доступа к свойству в JSDoc - PullRequest
0 голосов
/ 04 сентября 2018

У нас есть контейнерный объект для наших пользовательских классов, но JSDoc, похоже, не нравится моя запись для этих типов и комментирует их

«неверный синтаксис типа».

Я использую PHP-Storm.

Мой JSDoc соответствует этому принципу:

/** @type {Container['3rd'].className} */

Screenshot of the comment

Когда я меняю аннотацию на это, она кажется действительной, так как комментарий исчезает:

/** @type {Container.3rd.className} */

Почему первый синтаксис метода доступа к свойству не считается допустимым в JSDoc? Метод доступа, использующий скобки, действителен в коде Javascript, так почему бы не использовать аннотации jsdoc?

1 Ответ

0 голосов
/ 05 сентября 2018

JSDocs @ type нотация не является выражением JavaScript. Это JSDoc Namepath Выражение.

Если вы детально изучите эти 2 ссылки, вы увидите несколько вещей;

  • Существуют допустимые пути имен, которые не будут действительными js:

    MyConstructor#instanceMember
    MyConstructor~innerMember
    
  • Есть допустимые @type выражения, которые используют синтаксис не-JS:

    /** @type {(string|Array)} */
    
  • Нет упоминаний об использовании обозначения в скобках ни в одном из этих документов (для типов / пространств имен).

...