Atualizando o projeto

Atualizando o tsconfig.json

{
    "compilerOptions": {
        "target": "es5",
        "outDir": "app/js",
        "noEmitOnError": true,
        "strictNullChecks": true
    },

    "include": [
        "app/ts/**/*"
    ]
}

Classe Carro

import { Veiculo } from "./veiculo";

export class Carro extends Veiculo {

    public constructor(
        fabricante: string,
        modelo: string,
        cor: string,
        potencia: number,
        placa: string = "Sem placa",
        private _numPortas: number = 2) {

        super(fabricante,modelo,cor,placa,potencia);

        if (_numPortas < 2) {
            this._numPortas = 2
        }
    }

    public ligar() {
        console.log("Carro ligado ...")
    }

    public get numPortas(): number {
        return this._numPortas;
    }

    public set numPortas(numPortas: number) {

        if (numPortas < 2) {
            this._numPortas = 2;
        } else {
            this._numPortas = numPortas;
        }

    }

    public exibirInformacoes() {
        console.log(`
        INFORMAÇÕES:
        Fabricante: ${this.fabricante},
        Modelo: ${this.modelo},
        Cor: ${this.cor},
        Placa: ${this.placa},
        Portas: ${this._numPortas},
        Potência: ${this._motor.potencia}
        `)
    }

}

Classe Moto

export class Moto extends Veiculo{

}

Classe Veiculo

import { Direcao } from "./direcao";
import { Motor } from "./motor";

export class Veiculo{

    protected _motor: Motor
    protected _direcao: Direcao;

    public constructor(
        readonly fabricante:string,
        private _modelo:string,
        private _cor: string,
        private _placa: string = "Sem placa",
        potencia: number){
        this._motor = new Motor(potencia);
        this._direcao = new Direcao();
    }

    public  get modelo(){
        return this._modelo;
    }

    public set modelo(modelo: string){
        this._modelo = modelo;
    }

    public  get cor(){
        return this._cor;
    }

    public set cor(cor: string){
        this._cor = cor;
    }

    public  get placa(){
        return this._placa;
    }

    public set placa(placa: string){
        this._placa = placa;
    }

    public ligar(){
        console.log("Veiculo ligado ...")
    }

    public get motor() : Motor {
        return this._motor
    }

    public set motor(motor : Motor) {
        this._motor = motor;
    }

    public get direcao() : Direcao {
        return this._direcao;
    }

   public set direcao(direcao : Direcao) {
       this._direcao = direcao;
   }

   public exibirInformacoes() {
    console.log(`
    INFORMAÇÕES:
    Fabricante: ${this.fabricante},
    Modelo: ${this.modelo},
    Cor: ${this.cor},
    Placa: ${this.placa},
    Potência: ${this._motor.potencia}
    `)
}

}

Versão 5.3 - Todos os Direitos reservados