#javascript #netbeans #ide #code-completion
#javascript #netbeans #ide #завершение кода
Вопрос:
Я использую NetBeans, в частности пакет HTML5 amp; PHP. В настоящее время я работаю над игрой, которая использует элемент canvas HTML5. У меня есть глобальная переменная с именем context
:
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
Очевидно, что среда IDE понятия не имеет, что такое тип context
, поскольку она не может определить тип canvas
в первую очередь, и она не может знать, что getContext()
будет возвращено при вызове этого canvas
. Я хотел бы, чтобы NetBeans предоставил функцию завершения кода для context
предположения, что она представляет определенный тип (а именно, CanvasRenderingContext2D
). После проведения некоторых исследований я обнаружил это:https://blogs.oracle.com/netbeansphp/entry/defining_variable_type_in_a. На сайте указано, что такая функция может быть использована в PHP, предоставив комментарий PHPDoc, который выглядит следующим образом: /* @var $variable type */
. Я знаю, что это касается PHP, но я решил попробовать это и в JavaScript:
/* @var context CanvasRenderingContext2D */
К сожалению, вышеописанное не сработало. Я подумал, что, возможно, NetBeans по какой-то причине не знает этот тип, и попробовал что-то более простое:
/* @var test HTMLImageElement */
Опять же, не было никаких предложений для test
, за исключением тех, которые являются родными для всех объектов JavaScript.
Итак, возможно ли это вообще? Я был бы признателен, если бы кто-нибудь предоставил решение. Заранее спасибо!
Ответ №1:
JavaScript использует JSDoc, а не PHPDoc, поэтому вам нужно использовать
/** @type HTMLImageElement */
var myImage;
Комментарии:
1. Спасибо, это отлично работает с
HTMLImageElement
, к сожалению, нет подсказок дляCanvasRenderingContext2D
. Похоже, они еще не добавили поддержку для этого: netbeans.org/bugzilla/show_bug.cgi?id=234149 но в любом случае это правильный ответ на мой вопрос, поэтому я принимаю его.