Предполагая, что foo(arg)
возвращает объект только со свойствами x
и y
:
class xy {
x: number;
y: number;
constructor (arg) {
Object.assign(this, foo(arg));
}
}
Если foo
может вернуть больше свойств, вам необходимо вручную получить свойства: [ 117]
class xy {
x: number;
y: number;
constructor (arg) {
const {x, y} = foo(arg);
Object.assign(this, {x, y});
}
}
Самый высокий уровень предупреждения на Visual C++ является Стеной/. Уровень предупреждения может также быть установлен численно с/W0,/W1.../W4 для генерации увеличивающихся уровней предупреждений.
Компилятор также проверит на проблемы мобильности на 64 бита с/Wp64.
И можно сказать этому рассматривать предупреждения как ошибки с/WX
Visual C++, кажется, не имеет реальный эквивалент - педантичный - который просит, чтобы gcc сообщил обо всех предупреждениях, требуемых сообщаться стандартами C++ и ISO C.
AS billmcc64 упомянул, gcc's - педантичные причины gcc, чтобы предупредить при использовании каких-либо нестандартных расширений. Я не думаю, что можно заставить MSVC предупреждать для аналогичной ситуации, но можно заставить его генерировать ошибку для этих ситуаций с помощью опции Za/.
Обратите внимание, что/Wp64 не рекомендуется Microsoft в противоположность компиляции непосредственно для 64-разрядной платформы, если это возможно.
Также обратите внимание, что выпуск Разработчика Команды имеет/, анализируют опцию, которая добавляет семантическую проверку общие ошибки в коде. Можно также посмотреть на получение линта ПК от gimpel для дополнительной семантической проверки.
если Вы хотите что-то как - педантичный, попробуйте хороший линт как линт ПК (http://www.gimpel.com/html/products.htm).