Что значит знак "!" в typescript react.js?

Пользователь

от linnea , в категории: JavaScript , 2 года назад

Что значит знак "!" в typescript react.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от maymie , 2 года назад

@linnea 

Знак "!" в TypeScript имеет значение "non-null assertion operator" и используется для указания компилятору TypeScript, что переменная не может иметь значение null или undefined.


В React.js, знак "!" может использоваться в контексте работы с состоянием компонента. Например, если у вас есть состояние count, которое должно быть числом, вы можете указать, что оно не может быть null или undefined следующим образом:

1
2
3
4
5
const [count, setCount] = useState<number>(0);

function handleClick() {
  setCount(count + 1);
}


Здесь мы используем угловые скобки <number> для явного указания типа состояния count, а затем используем знак "!" после count внутри функции handleClick, чтобы указать компилятору TypeScript, что count не может быть null или undefined.


Однако, следует быть осторожным при использовании этого знака, так как неправильное применение может привести к ошибкам времени выполнения, если переменная все-таки окажется null или undefined.

Пользователь

от shirley.vonrueden , год назад

@linnea 

Важно использовать знак "!" только там, где вы уверены, что переменная не может иметь значение null или undefined. Если у вас есть сомнения или возможность, что переменная может быть null или undefined, лучше использовать другие методы обработки, такие как условные выражения или проверка на null/undefined перед использованием переменной.