Búsqueda de sitios web

html - Seleccionar texto en TypeScript


cómo puedo seleccionar texto en un campo de entrada en TypeScript.

en Javascript esto se vería así:

document.getElementById('id').select();

pero TypeScript no soporta select (error: [ts] La propiedad 'select' no existe en el tipo 'HTMLElement'.)

Agregué algunas cosas: Puede ser un problema porque uso controles dx y crean un envoltorio. Puedes ver aquí en html:

<dx-text-box _ngcontent-c1="" id="test" ng-reflect-disabled="false" ng-reflect-value="0:00" class="dx-texteditor dx-widget dx-textbox">
<div class="dx-texteditor-container">
<input autocomplete="off" class="dx-texteditor-input" type="text" spellcheck="false" tabindex="0" role="textbox">
<div data-dx_placeholder="" class="dx-placeholder dx-state-invisible"></div><div class="dx-texteditor-buttons-container">
</div></div></dx-text-box>

Respuesta #1

document.getElementById(string) devuelve un HTMLElement que no define un método select(). HTMLInputElement SÍ define un método select() y también extiende HTMLElement, por lo que si lo casteas como HTMLInputElement, debería funcionar:

 (document.getElementById('id') as HTMLInputElement).select();

Respuesta #2

Puedes convertir el resultado de document.getElementById() a un tipo más específico, en este caso HTMLInputElement:

(<HTMLInputElement>document.getElementById('id')).select();
// or (TSX-friendly)
(document.getElementById('id') as HTMLInputElement).select();

Esto está permitido, ya que HTMLInputElement extiende HTMLElement, agregando propiedades como select que no existen en todos los tipos de elementos HTML.

Artículos relacionados