Как я могу предотвратить недопустимую операцию с возможной нулевой ссылкой в ​​машинописи? - PullRequest
0 голосов
/ 23 декабря 2018

Рассмотрим этот пример, где a возможно null и явно объявлено так.Даже при включенной строгой проверке нуля, машинопись не предупреждает меня о возможной ошибке здесь -

let a: string | null = "hello"

function b() {
  a = null
}

b()

a.replace('2', '3') 

Ссылка на Typescript Playground .

Тот же код, написанный напоток сразу же допустил бы ошибку, так как метод replace недоступен для типа null.

Что я могу сделать для обеспечения безопасности типов в таких сценариях?

1 Ответ

0 голосов
/ 23 декабря 2018

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

(a || '').replace('2', '3');
...