У меня есть 3 JavaScript классы, представляющие автомобили, один из них работает как фабричный класс (представляет базовый автомобиль c), он содержит метод "Автомобиль", который возвращает новый объект автомобиля в зависимости от типа автомобиля. был передан на конструктор. Я использую код Visual Studio, поэтому все автозаполнение и другие подсказки зависят от документации кода.
CarFactory.js
:
const FastCar = require('./FastCar.js');
const FamilyCar = require('./FamilyCar.js');
/**
* Class for Car Factory
* @class
*/
class CarFactory {
/**
* Fabricates a car.
* @param {string} type - Choose which type of car you would like to construct (Race or Family)
*/
constructor(type) {
this.type = type;
}
/**
* Returns a fabricated car
* @return {RaceCar | FamilyCar} <-- HERE IS THE PART I DON'T KNOW HOW TO DOCUMENT FOR A SWITCH CONDITIONAL
*/
get Car() {
switch (this.type) {
case 'Race':
return new RaceCar();
case 'Family':
return new FamilyCar();
}
}
};
module.exports = CarFactory;
Когда я использую класс CarFactory для создания «Семейного автомобиля» "Я получаю автозаполнение от всех методов и свойств класса FastCar
.
index.js
:
const CarFactory = require('./CarFactory.js');
const myCar = new CarFactory("Family");
myCar.... //<-- Auto completion will recognize it as a Family car and as a Fast car
Очевидно, что использование |
не для условий, но есть обходной путь? Я проверил документацию и не нашел решения, чтобы заставить его работать с Visual Code.