StrictNullChecks vs Union Types через синтаксис

StrictNullChecks

Первоначально null и undefined являются допустимыми в JavaScript гражданами первого класса. TypeScript раньше этого не придерживался, что означает, что вы не можете определить переменную и сообщить TypeScript, что значение этой переменной может быть нулевым или неопределенным.

Синтаксис

let y: number | null;
let z: number | undefined;

Типы профсоюзов

Типы объединения тесно связаны с типами пересечений, но используются по-разному. Иногда вы сталкиваетесь с библиотекой, которая ожидает, что параметр будет либо числом, либо строкой.

Синтаксис:

function padLeft(value: string | number | boolean) {
// codings
   }

Мой вопрос:

  • Можно ли использовать StrictNullChecks концепции в Union Types Concept? Нравиться,

       function padLeft(value: string | undefined | number | undefined) { // coding's }
    

  • Можно ли использовать strictnullcheck в параметрах функции? нравиться,

               function padLeft(value: string | undefined) { // coding's }
    

person Ramesh Rajendran    schedule 26.04.2017    source источник


Ответы (1)


Это возможно, за исключением того, что string | undefined | number | undefined имеет на undefined слишком много.

person Bob Wood    schedule 26.04.2017
comment
Какой из них возможен? первый вопрос или второй вопрос. Можете ли вы поделиться с кодом более подробной информацией? потому что это должно помогать другим. - person Ramesh Rajendran; 26.04.2017
comment
Оба варианта возможны, за исключением упомянутого мною. В первом случае это должно быть string | number | undefined, то есть value может иметь тип string, number или undefined при вызове padLeft. Во втором случае это может быть только строка или неопределенное значение. Если вы попытаетесь вызвать padLeft с любым другим типом (например, числом во втором случае), компилятор TypeScript пожалуется. - person Bob Wood; 26.04.2017
comment
Вы можете добавить это в ответ. Я подожду других ответов, чтобы узнать подробности - person Ramesh Rajendran; 26.04.2017