Ты каким-то удивительным образом умеешь понимать и не понимать одновременно... Если тебе не понятна конструкция !this.state?.done, то перепиши ее в !(this.state?.done). Может так тебе будет понятноей? Ты путаешься с моментом когда именно применяется восклицательный знак, так как он стоит перед this... Но правильно воспринимать не (!this)(.state)(.done), а именно !(this.state?.done), потому что восклицательный знак воздействует на значение конечного элемента, а не на первый элемент, то есть на done, а не на this. Еще ты можешь сделать так, чтобы было понятней: И можешь в консоли поиграться с такими конструкициями: Приведение типов. Отрицание пустого дает истину.