Свойство intlTelInput не существует для типа «Окно» - PullRequest
2 голосов
/ 27 мая 2019

Я работаю с angular7.Мне нужен международный телефонный ввод (https://intl -tel-input.com / ) для моего сайта.

Поэтому я использовал следующий комментарий для установки CDN.

npm uninstall ng2-tel-input --save

После этого я вызвал файлы CSS и JS в angular.json

"styles": [
     "node_modules/intl-tel-input/build/css/intlTelInput.min.css",
      "src/styles.css"
],
"scripts": [
    "node_modules/intl-tel-input/build/js/utils.js",
    "node_modules/intl-tel-input/build/js/intlTelInput.min.js"
],

Добавлено поле ввода номера телефона в "contactform.compenent.html"

<input type="tel" class="form-control" value="" placeholder="Mobile number"
       id="telnumber-field" required>

И добавил скрипт для телефонной зоны в "app.compenent.ts"

ngOnInit(){

jQuery( document ).ready( function( $ ) {   

    if(jQuery('#telnumber-field').length){
        var input = document.querySelector("#telnumber-field");
        window.intlTelInput(input, {
            preferredCountries: ['in'],
            separateDialCode: true
        });
    }       

}); }

Но возникает ошибка.

ОШИБКА в src / app / app.component.ts (65,11): ошибка TS2339: свойство 'intlTelInput' не существует для типа 'Window'.

1 Ответ

1 голос
/ 27 мая 2019

Во время компиляции машинописного текста intlTelInput объект не создается в окне объекта. Измените тип окна на any, чтобы пропустить проверку свойств для компиляции продолжительности окна. intlTelInput отображается после загрузки приложения в браузер, поэтому приложение будет работать должным образом.

  ngOnInit(){

   jQuery( document ).ready( function( $ ) {   

    if(jQuery('#telnumber-field').length){
        var input = document.querySelector("#telnumber-field");
       (<any>window).intlTelInput(input, {
            preferredCountries: ['in'],
            separateDialCode: true
        });
    }       

}); 
}
...