tablas start listas guide javascript typescript angular ionic2

javascript - start - manual de ionic



Error de sintaxis Ionic 2 al compilar TypeScript (2)

Mientras sigo el tutorial aquí , llego al punto en el que obtengo un error de sintaxis al compilar mi código de mecanografía.

Aquí está el error:

/app/pages/list/list.js Falló la compilación del módulo: SyntaxError: /focus/projects/ionic-todo/app/pages/list/list.js: Token inesperado (10:17) 8 | 9 | clase de exportación listaPágina {

10 | constructor (nav: NavController) {| ^ 11 | this.nav = nav; 12 | 13 | this.items = [

Como puede ver, parece pensar que hay algo mal con el colon. Sin embargo, si quita los dos puntos, entonces obtiene un error similar donde está el espacio.

Aquí está el código completo:

import {Page, NavController} from ''ionic-angular''; import {AddItemPage} from ''../add-item/add-item''; @Page({ templateUrl: ''build/pages/list/list.html'' }) export class ListPage { constructor(nav: NavController){ this.nav = nav; this.items = [ {''title'': ''hi'', ''description'': ''hello''}, {''title'': ''sadf'', ''description'': ''asdfasdf''}, {''title'': ''asd'', ''description'': ''asdf''} ]; } addItem() { this.nav.push(AddItemPage, {ListPage: this}); } }

¿Alguna idea de lo que podría estar causando esto?


Tu error, déjame pensar que intentas ejecutar directamente tu código de TypeScript sin haberlo compilado (preprocesamiento) o haberlo transpuesto sobre la marcha.

Creo que tu código debería ser solo ES6. De hecho, con ES6, tiene el soporte de clase pero no el tipo de soporte (en el constructor / método, por ejemplo).

Eché un vistazo a las plantillas de generador Ionic2 y parecen ser ES6. Ver este enlace:

Podrías adaptar tu código así:

import {Page, NavController} from ''ionic-angular''; import {AddItemPage} from ''../add-item/add-item''; @Page({ templateUrl: ''build/pages/list/list.html'' }) export class ListPage { static get parameters() { return [[NavController]]; } constructor(nav){ this.nav = nav; this.items = [ {''title'': ''hi'', ''description'': ''hello''}, {''title'': ''sadf'', ''description'': ''asdfasdf''}, {''title'': ''asd'', ''description'': ''asdf''} ]; } addItem() { this.nav.push(AddItemPage, {ListPage: this}); } }


Cuando está escribiendo en el archivo .js tendrá que dar el bloque estático, es decir,

static get parameters() { return [[NavController]]; }

para obtener el tipo de nav , eso está dentro del parámetro contructor.

pero en el archivo .ts, no necesita definir el bloque estático, simplemente puede definirlo dentro del constructor como:

constructor (nav : NavController) {}

puedes pensarlo como nav es una variable y NavController es el tipo.

Esa es la razón por la que recibiste el error. Estabas usando la sintaxis de mecanografía (.ts) en el archivo javascript (.js).

Así que la próxima vez que esté viendo un tutorial intente ver si el tutor está trabajando con el archivo .js o el archivo .ts :-)

Espero eso ayude.