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