Property 'forChild' does not exist on type 'typeof IonicModule'
🗓️ 2017-04-10
📑
Post
久しぶりのエラー解決記事。
Ionic 3.0.x系で現在発生する模様。
条件はgenerateコマンドで生成したものを利用する場合。
$ ionic generate page test
src/pages/test
に下記4ファイルが作成される。
- test.html
- test.scss
- test.ts
- test.module.ts
以前はなかったtest.module.ts
が追加された。
Ionic3からLazy loadingが利用できるようで、そのためのファイルのようだ。
https://docs.google.com/document/d/1vGokwMXPQItZmTHZQbTO4qwj_SQymFhRS_nJmiH0K3w/edit
で、そのテンプレートの生成ファイルがエラーを吐くという状態。
// src/pages/test/test.module.ts
import { NgModule } from '@angular/core';
import { IonicModule } from 'ionic-angular';
import { Test } from './test';
@NgModule({
declarations: [
Test,
],
imports: [
IonicModule.forChild(Test),
],
exports: [
Test
]
})
export class TestModule {}
ページエラー。
Typescript Error
Property 'forChild' does not exist on type 'typeof IonicModule'.
src/pages/test/test.module.ts
imports: [
IonicModule.forChild(Test),
],
Ionic Framework: 3.0.1
Ionic Native: ^2.9.0
Ionic App Scripts: 1.3.0
Angular Core: 4.0.0
Angular Compiler CLI: 4.0.0
Node: 7.7.2
...
IonicModuleをIonicPageModuleに置き換えると解決。Lazy loading使わないなら削除しても良さそう。
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular'; // replace here
import { Test } from './test';
@NgModule({
declarations: [
Test,
],
imports: [
IonicPageModule.forChild(Test), // replace here
],
exports: [
Test
]
})
export class TestModule {}
Ref
https://github.com/driftyco/ionic-cli/issues/2070
🏷️
#Ionic