Ошибка машинописного текста: Не удается присвоить переменным определенные типы

#javascript #reactjs #typescript #boolean #undefined

Вопрос:

Я определил тип следующих переменных как:

 let isDisabled: boolean | undefined | null;
let isPrivate: boolean | undefined | null;
 

когда я пытаюсь это сделать:

 isDisabled = null;
 

Я получаю эту ошибку:

 Type 'null' is not assignable to type 'boolean'
 

Я получаю ту же ошибку, когда пытаюсь установить значение undefined.

Я также попытался объявить переменные как

 let isDisabled: Maybe<boolean> | undefined;
 

Я не совсем понимаю, почему это происходит. Примечание: это происходит, когда TypeScript компилируется в JS

Комментарии:

1. По-видимому, это верный машинописный текст, функционирующий в typescriptlang.org/play? #код/…

2. Ха, похоже, это действительный текст (это часть кода react), поэтому я не уверен, что проблема исходит от React.

3. На игровой площадке ts нет ошибок. Пожалуйста, поделитесь полным примером с ошибкой

Ответ №1:

логические значения определяются только значением True; или False; ??

Даже когда вы пытаетесь назначить что-то var, вы должны избегать значений по умолчанию, таких как «null», попробуйте использовать другие ключевые слова …

Комментарии:

1. Он использовал тип объединения, поэтому он может назначить несколько разных типов

2. В этом случае я должен явно проверить, являются ли эти переменные Истинными/Ложными, нулевыми или неопределенными, потому что они могут быть отправлены в любом из этих типов. Кроме того, это тестовый файл, поэтому я пытаюсь писать тесты для разных сценариев.

3. Это верно, но ошибка гласит: «Тип ‘null’ не может быть присвоен типу ‘boolean'».