Мне удалось заставить IntelliSense JavaScript работать правильно для прототипа 'class', определенного следующим образом:
function GetCustomerList()
{
}
GetCustomerList.prototype =
{
HEADER: {
RETURN_CODE: 0,
RETURN_MESSAGE: "",
}
,
NUM_RECORDS: 0,
START_RECORD: 0,
END_RECORD: 0
};
Я могу напечатать что-то вроде:
var req = new GetCustomerList();
req.HEADER.RETURN_CODE = 100;
И IntelliSense Visual Studio знает о свойстве HEADER и его собственных свойствах с именами 'RETURN_CODE' и 'RETURN_MESSAGE'. Я могу сделать:
req.NUM_RECORDS = 50;
С intellisense работает отлично.
Так что intellisense работает со сложными вложенными типами - отлично. Однако возможно ли получить intellisense с массивом сложных типов?
Пример:
function Customer()
Customer.prototype = {
NAME: "",
ADDRESS: "",
ID: 0
};
function GetCustomerList()
{
}
GetCustomerList.prototype =
{
HEADER: {
RETURN_CODE: 0,
RETURN_MESSAGE: "",
}
,
NUM_RECORDS: 0,
START_RECORD: 0,
END_RECORD: 0,
CUSTOMERS: [ new CUSTOMER() ]
};
Где у меня есть массив типа 'CUSTOMER', для которого я также определил прототип. Я хотел бы иметь возможность печатать такие вещи, как:
req.CUSTOMER[ 0 ].NAME
И пусть intellisense подскажет мне, что «NAME» - это свойство, доступное для этого массива.
Возможно ли это?