Sto verificando il tipo di input di qualche elemento, fe checkbox in TS. Ora sono sicuro di avere un elemento che è checkbox, quindi questo elemento dovrebbe avere la proprietà controllata. Ma se faccio semplicementeDattiloscritto come dire che l'elemento è checkbox, quindi element.checked non è rosso sottolineato
element: HTMLElement
if (element.InputType.toLowerCase() == "checkbox"){
element.checked = true;
}
di quanto funzioni, ma element.checked è sottolineato in rosso. Penso che devo semplicemente ridigitare da HTMLElement a qualcosa come CheckboxElement, ma non ho trovato nulla adatto a questa conversione. Come sbarazzarsi di questo? Ho affrontato questo anche in caso di element.value
+1 e solo per chiarezza, non ha bisogno di fare la prova di cui sopra quando si utilizza 'HTMLInputElement' ... ora si può semplicemente utilizzare il' Proprietà checked': '(if element.checked') {...' –
@SunilD. Thx, OP può rimuoverlo forse è una parte del codice che imposta il valore predefinito in base al tipo di input dell'elemento e la casella di controllo sembra essere uno di questi. Giusto per chiarire la tua affermazione - 'non ha bisogno di fare il test sopra quando si usa HTMLInputElement' l'affermazione con un tipo specifico con typescript non garantisce alcuna sicurezza di runtime sebbene il controllo specifico qui possa essere irrilevante e hai ragione. – PSL
Grazie per l'aiuto. Un'altra cosa. Supponiamo che io abbia ascoltatore sull'evento di cambiamento, ora vorrei controllare il tipo di input ' event.target) .type) ==" password "' ora sicuro che questo può essere cambiato in ' event.target) .type) == "password" 'ma il problema è che l'evento change può essere attivato sull'elemento , che non so esattamente quale sia, ma presumo che non abbia la proprietà' type'. C'è un modo sicuro di usare casting in TS? Solo le cose che mi vengono in mente sono che prima di questo controllerò che il tag sia stato inserito. @Sunil D. –