2012-10-31 4 views

risposta

3

Questo è interessante. Il team di TypeScript è piuttosto intelligente e ha deciso di farlo deliberatamente.

L'idea è che se la funzione può funzionare correttamente senza passare un argomento, può tranquillamente ignorare l'argomento e soddisfare l'interfaccia. Ciò significa che puoi sostituire la tua implementazione senza dover aggiornare tutto il codice chiamante.

L'interfaccia garantisce che l'argomento venga passato in tutti i casi in cui si sta utilizzando l'interfaccia, in modo da ottenere il controllo dei tipi sui chiamanti e in realtà non importa che la classe concreta non abbia bisogno di parametri.

Interface Function Parameter Not Enforced

+0

ho pensato che sia troppo ovvio per essere un bug .. in attesa se qualcuno ha un'altra risposta, allora malato segnare la risposta .. grazie –

+0

Aggiornato in base al feedback da parte del team dattiloscritto. – Fenton

+0

Grazie, ma per me preferirei avere il controllo dei parametri per assicurare la corretta implementazione, e si potrebbe dire dicendo se ho una funzione a (arg1) non in un'interfaccia .. in una classe diciamo .. non sarà richiamabile senza arg1 a meno che arg1 non sia richiesto usando '?' .. –