Мозговой штурм необходим .У меня проблема с библиотеками Javascript (jQuery, ExtJS и т. Д.), Которые, похоже, не очень хорошо работают с Javascript Intellisense, встроенным в Visual Studio 2008. Они предоставляют определенные вспомогательные функции, которые Intellisense не может понять.
то есть.Код ExtJS
// convenience function to create namespace object placeholders
Ext.namespace("Root.Sub.Subsub");
или jQuery
// doing the same thing in jQuery
$.extend(window, {
Root: {
Sub: {
Subsub: {}
}
},
});
или даже (мне жаль, что вы будете поддерживать этот код)
$.extend(window, { Root: {}});
$.extend(Root, { Sub: {}});
$.extend(Root.Sub, { Subsub: {}});
Конечный результат этих вызововв основном то же самое. Ни один из них не сделает Root
пространство имен видимым для Javascript Intellisense в Visual Studio 2008. Если бы мы знали, как работает intellisense под капотом, мы, вероятно, могли бы преодолеть эту ситуацию.
Можно ли убедить Intellisense для отображения / распознавания этих пространств имен без записи объектов, например:
Root = {
Sub: {
Subsub: {}
}
};
Я допускаю, что первый вызов jQuery очень похож на этот, но этоЛучше использовать расширенную функциональность для предотвращения удаления / перезаписи существующих функциональных возможностей / пространств имен.
Вопрос
Как мы должны использовать эти служебные функции, чтобы заставить Intellisense работать?
ЛюбыеОтвет «мозгового штурма», который пролил бы свет на это, можно только приветствовать?
Редактировать
Я обнаружил, что пространства имен, созданные с помощью служебных функций, отображаются, если они определены снаружи (т. е. в другом скриптефайл), и вы делаете ссылку на этот файл, как:
/// <reference path="different.script.file.js" />
В этом случае всехорошо.Но если вы вызываете служебные функции в одном и том же файле, они не отображаются в раскрывающемся списке intellisense.