Недавно я нашел немного машинописного кода в большом угловом проекте, в котором в объявлении объекта был символ Bitwise-OR / Pipe-Symbol.Вот так:
dataSource: FileSource | null;
В моем понимании это объект типа FileSource , который также обнуляется .
dataSource = null; // Works
dataSource = new FileSource... // Works
dataSource = 32; // Error
Я также узнал, что вы можете объявить объект с полным набором типов данных следующим образом:
myVariable: number | string | null;
Теперь к моему актуальному вопросу: я также могу объявить объект с знак вопроса как символ для nullable.Есть ли какая-либо разница между этими двумя объявлениями?
myVariable: FileSource | null;
mySecondVariable?: FileSource;
Если между этими двумя нет различий, считаете ли вы это плохой практикой, поскольку это не распространено в других языках и не имеет допустимого кода javascript?
КСТАТИ: В Javascript это будет нормально:
myVariable: Number | null;
myVariable = "Hello World";
.
Мой фокус - обнуляемость объекта и отличие этих объявлений