Ошибка Angular 11 TS7006: параметр ‘xyz’ неявно имеет тип ‘any’

#angular #typescript #angular-forms

#угловой #typescript #угловые формы

Вопрос:

Используя Angular 11, пытаюсь создать форму, управляемую шаблоном. Файл ts содержит следующий код

 submit(xyz){
var firstName = form.firstName;
console.log(firstName);

 }
 

ИТАК, я получаю ошибку

 error TS7006: Parameter 'form' implicitly has an 'any' 
type.

  submit(xyz){
 

Комментарии:

1. скорее всего, вы активировали строгие проверки (и это хорошо, что вы это делаете). чего вы не сделали, так это не указали тип для xyz. это должно быть что-то вроде submit(xyz: MyType) . или, если быть более конкретным: каждая переменная, которую вы определяете, должна иметь тип. ошибка говорит о том, что форма была определена без нее, я полагаю, это поле уровня класса.

2. @MarkusDresch Я отредактировал type на ‘any’, и теперь он говорит TS2531: Объект, возможно, ‘null’.

3. Пожалуйста, поделитесь всем соответствующим кодом компонента. Как вы инициализируете объект form -object? Какой тип xyz ? Какой тип form ?

4. объект, который, возможно, имеет значение null, должен быть проверен на нуль в строгом режиме.

Ответ №1:

Просто дайте функции и параметрам тип, подобный:

 submit(xyz: object): void {
...
 

Это просто typescript, который очень внимательно относится к вашим типам. Это не ошибка. Просто предупреждение.

Комментарии:

1. он не компилируется. Я добавил выше, и это дает TS2531: Объект, возможно, ‘null’. как ошибка

2. Попробуйте добавить тип any прямо сейчас. Это может скомпилироваться.