ionic-attr-type-check
Ionicコンポーネントの非string属性への文字列値を禁止し、適切なproperty bindingを提案する。boolean・number・object型属性に対応する。
- ⭐️ このルールは
plugin:@rdlabo/rules/recommendedプリセットに含まれます。- ✒️ コマンドラインの
--fixオプションで、このルールが報告する問題の一部を自動修正できます。
このルールは、Ionicコンポーネントのテンプレートで非string属性(boolean、number、object、complex)に文字列値が割り当てられている箇所を検出し、適切なproperty bindingを提案することで、TypeScriptのビルドエラーを防ぎます。
ルール詳細
このルールは、Ionicコンポーネントのテンプレートで非string属性(boolean、number、object、complex)に文字列値が割り当てられている箇所を検出します。
❌ 誤り: 非string属性に文字列値を使う
<ion-item button="true"></ion-item>
<ion-list inset="true"></ion-list>
<ion-progress-bar value="50"></ion-progress-bar>
<input disabled="false"></input>
<button readonly="1"></button>
✅ 正しい: property bindingを使う
<ion-item [button]="true"></ion-item>
<ion-list [inset]="true"></ion-list>
<ion-progress-bar [value]="50"></ion-progress-bar>
<input [disabled]="false"></input>
<button [readonly]="true"></button>
オプション
オプションなし。
サポートする属性型
このルールはIonicコンポーネントの型定義から非string属性を自動で特定し、次のような属性を検出します。
Ionicコンポーネント属性の例
ion-item:button,disabled,detailion-list:inset,linesion-button:disabled,expand,fill,strongion-checkbox:checked,disabled,indeterminateion-toggle:checked,disabledion-radio:checked,disabledion-input:disabled,readonly,requiredion-textarea:disabled,readonly,requiredion-select:disabled,multiple,requiredion-datetime:disabled,readonlyion-range:disabled,pin,snapsion-segment:disabledion-slides:pager,scrollbarion-tab:selectedion-menu:disabled,swipeGestureion-modal:animated,backdropDismiss,showBackdropion-popover:animated,backdropDismiss,showBackdropion-alert:animated,backdropDismission-loading:animated,backdropDismission-toast:animatedion-action-sheet:animated,backdropDismiss
エラーメッセージ
このルールは次のメッセージを表示します。
boolean attribute 'button' should not have a string value 'true'. Use property binding [button]="true" instead.
number attribute 'value' should not have a string value '50'. Use property binding [value]="50" instead.