Как правильно установить значение типа AlertInput в Ionic?

Я использую Ionic для своего последнего проекта, но у меня проблемы с Alert.

Я создал один таким образом:

const alert = await this.alertController.create({
  header: 'Ordering options',
  inputs: this.order.options.map(option => ({
    name: option.name,
    type: "radio",
    label: option.readable,
    value: option.name,
    checked: (option.name === this.order.selected),
    handler: () => {
      this.order.selected = option.name;
      this.order.apply();
      alert.dismiss();
    },
}))

Хотя код работает, частью вывода компиляции ionic lab является следующее предупреждение:

[ng] ERROR in src/app/overview/order/order-mobile.component.ts(24,7): error TS2322: Type '{ name: any; type: string; label: any; value: any; checked: boolean; handler: () => void; }[]' is not assignable to type 'AlertInput[]'.
[ng]   Type '{ name: any; type: string; label: any; value: any; checked: boolean; handler: () => void; }' is not assignable to type 'AlertInput'.
[ng]     Types of property 'type' are incompatible.
[ng]       Type 'string' is not assignable to type '"number" | "password" | "time" | "text" | "date" | "email" | "search" | "tel" | "url" | "checkbox" | "radio"'.

В чем дело?

Спасибо за вашу помощь.

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
0
535
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы используете typescript 3.5.1, вы можете идти "radio" as const, иначе "radio" as "radio" будет работать

В качестве альтернативы вы также можете сделать это...

inputs: this.order.options.map((option): AlertInput => ({

Проблема здесь в том, что typescript всегда предполагает, что это строка, а не строковый литерал, если не предоставлена ​​​​дополнительная информация.

Другие вопросы по теме