Estoy siguiendo un curso de PluralSight y práctica de la redacción de un servicio básico en Angular2. Tengo el siguiente archivo de servicio:

cliente.servicio.ts

import { Injectable } from '@angular/core';

@Injectable()
export class CustomerService {

    constructor() {}

    getCustomers() {
        return 
        [
            {id: 1, name: 'Ward'},
            {id: 2, name: 'Joe'},
            {id: 3, name: 'Bill'},
            {id: 4, name: 'Bob'},
            {id: 5, name: 'Levi'},
            {id: 6, name: 'Brian'},
            {id: 7, name: 'Susie'}
        ];
    }
}

Al iniciar la lite-servidor utilizando npm start estoy recibiendo el siguiente error:

angular-[email protected].0.0 start C:\Dev\my-proj
tsc && concurrently "tsc -w" "lite-server"

app/customer/customer.service.ts(10,3): error TS7027: Unreachable code detected.

Cuando yo comente el regreso bloque, la lite-servidor se inicia bien, así que parece ser algo en esa vuelta que no le gusta. Cualquier ayuda se agradece.

InformationsquelleAutor Flea | 2016-11-28

5 Comentarios

  1. 12

    Si coloca a toda la matriz en una nueva línea después de la instrucción return, entonces su método tiene dos instrucciones:

    • volver indefinido
    • una definición de la matriz

    El error que veo es bastante útil. El manuscrito dice que no es de código (la definición de la matriz) que nunca podría ser alcanzado, porque usted está regresando de la función ya antes de que la matriz de la línea puede ser alcanzado.

    Así que la solución es bastante simple. Mover al menos el corchete de apertura en la línea de la instrucción return como return [. Eso es todo.

  2. 2

    He ajustado un poco. Esto debería funcionar:

    import {Injectable} from "@angular/core";
    
    @Injectable()
    export class CustomerService
    {
        private data: Array<any>;
    
        constructor()
        {
            this.data = [
                {id: 1, name: 'Ward'},
                {id: 2, name: 'Joe'},
                {id: 3, name: 'Bill'},
                {id: 4, name: 'Bob'},
                {id: 5, name: 'Levi'},
                {id: 6, name: 'Brian'},
                {id: 7, name: 'Susie'}
            ];
        }
    
        getCustomers()
        {
            return this.data;
        }
    }

    o si desea que el original de la nueva matriz debe comenzar en la misma línea:

    import {Injectable} from "@angular/core";
    
    @Injectable()
    export class CustomerService
    {
    
        constructor()
        {
        }
    
        getCustomers()
        {
            return [
                {id: 1, name: 'Ward'},
                {id: 2, name: 'Joe'},
                {id: 3, name: 'Bill'},
                {id: 4, name: 'Bob'},
                {id: 5, name: 'Levi'},
                {id: 6, name: 'Brian'},
                {id: 7, name: 'Susie'}
            ];
        }
    }
  3. 1

    Por lo general, sucede cuando usted pone algo de código después de una instrucción return, o cuando usted tiene un retorno dentro de una instrucción if y olvida el otro código.

    ...
    return warning;
    this.methodUnreacheable();
  4. 1

    He resuelto el problema para mi caso

    Yo tengo el error debido a la innecesaria «romper» la expresión:

    case "A": return false; break;

    He quitado el «break»;

    case "A": return false;

    Resuelto.

  5. 0

    Características en EcmaScript/Máquina hace que sea más como java o c#. Así que siempre vamos a utilizar o const palabras clave en el código.

    let mood:Boolean=true;
    if(mood){
    console.log('true');
    }
    else{
    console.log('false');
    }

Dejar respuesta

Please enter your comment!
Please enter your name here