Почему у TypeScript нет проблем со мной в этом:
return {
Price: value.rawPrice === null ? null : value.rawPrice
}
но у меня проблемы с этим:
return {
Price: null
}
Где поле Price - это номер типа
О, я полагаю, вы запускаете компилятор с флагом --strictNullChecks?
То же, что и @pushkin; кроме того, если я включу "strictNullChecks", оба этих примера покажут ошибку компиляции (ужасное форматирование из-за длины URL): typescriptlang.org/play/…
ок, да это кровавый флаг, спасибо @pushkin
Как сказал @MikeMcCaughan, я получаю сообщение об ошибке в обоих случаях при использовании этого флага. Мне любопытно, почему ты этого не делаешь. Может это старый баг tsc? У вас последняя версия?
как мне это проверить?
tsc --versionЯ нахожусь в окнах, поэтому ничего не делает
@LucasSeveryn Вы имеете в виду, что этого нет в вашем% PATH%? Найдите место, где установлен tsc, и запустите команду из этого каталога.
возможно, потому, что он не может явно привести его. Price:null as number может работать.






Используйте неопределенный вместо ноль
Это было из-за --strictNullChecks в компиляторе.
Я не могу воспроизвести это поведение. Протестировано в TS детская площадка в функции с типом возврата
{ Price: number }. Ваш второй случай не вызывает для меня ошибки. Какую конкретную ошибку вы получаете и какую версию TS вы используете?