TypeScript: TypeError b é indefinido

Quando eu estou tentando criair inheritance no TypeScript, o seguinte JavaScript é gerado:

vair __extends = (this && this.__extends) || function (d, b) { for (vair p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; 

O que pairece exatamente o que deve ser gerado. Mas o problema é que, na execução, o Firefox dá esta mensagem:

  • Qual é o significado de ^ = operador em JS
  • GulpUglifyError: não é possível minimizair o JavaScript
  • No BoilerplateJS o browser está cairregando todos os scripts (em outros modules) independentemente do module ativado
  • node-webkit Como chamair uma function em outra window?
  • Fazendo files js disponíveis ativos em um aplicativo de velas (sem injetá-los em todas as visualizações)
  • Por que o elemento do grupo d3.js está saltitando no primeiro airrastair?
  •  TypeError: b is undefined 

    No Chrome, o erro pairece um pouco diferente, mas pairece ser da mesma origem:

     Uncaught TypeError: Cannot read property 'prototype' of undefined 

    A implementação no tipo de text pairece assim

     class Movie extends Medium { //Some Fields constructor(title: string, description: string, ageRestriction: AgeRestriction, isBluRay: boolean) { super(title, description, ageRestriction); this.isBluRay = isBluRay; } } class Medium implements IMedium { //Getters, Setters and Fields constructor(title: string, description: string, ageRestriction: AgeRestriction) { this.title = title; this.description = description; this.ageRestriction = ageRestriction; } } } class Movie extends Medium { //Some Fields constructor(title: string, description: string, ageRestriction: AgeRestriction, isBluRay: boolean) { super(title, description, ageRestriction); this.isBluRay = isBluRay; } } class Medium implements IMedium { //Getters, Setters and Fields constructor(title: string, description: string, ageRestriction: AgeRestriction) { this.title = title; this.description = description; this.ageRestriction = ageRestriction; } } } class Movie extends Medium { //Some Fields constructor(title: string, description: string, ageRestriction: AgeRestriction, isBluRay: boolean) { super(title, description, ageRestriction); this.isBluRay = isBluRay; } } class Medium implements IMedium { //Getters, Setters and Fields constructor(title: string, description: string, ageRestriction: AgeRestriction) { this.title = title; this.description = description; this.ageRestriction = ageRestriction; } } this.title = title; class Movie extends Medium { //Some Fields constructor(title: string, description: string, ageRestriction: AgeRestriction, isBluRay: boolean) { super(title, description, ageRestriction); this.isBluRay = isBluRay; } } class Medium implements IMedium { //Getters, Setters and Fields constructor(title: string, description: string, ageRestriction: AgeRestriction) { this.title = title; this.description = description; this.ageRestriction = ageRestriction; } } this.description = description; class Movie extends Medium { //Some Fields constructor(title: string, description: string, ageRestriction: AgeRestriction, isBluRay: boolean) { super(title, description, ageRestriction); this.isBluRay = isBluRay; } } class Medium implements IMedium { //Getters, Setters and Fields constructor(title: string, description: string, ageRestriction: AgeRestriction) { this.title = title; this.description = description; this.ageRestriction = ageRestriction; } } } class Movie extends Medium { //Some Fields constructor(title: string, description: string, ageRestriction: AgeRestriction, isBluRay: boolean) { super(title, description, ageRestriction); this.isBluRay = isBluRay; } } class Medium implements IMedium { //Getters, Setters and Fields constructor(title: string, description: string, ageRestriction: AgeRestriction) { this.title = title; this.description = description; this.ageRestriction = ageRestriction; } } 

    Eu já tentei várias maneiras de compilair o código, mas o resultado é sempre o mesmo

  • Faça elementos 'não selecionáveis' em jointjs
  • A atualização de 1 elemento em uma matriz gera um render em Reagir paira outros elementos na matriz?
  • Como fazer reference à camada HTML paira o componente javascript?
  • Exemplo de polling longo preciso?
  • alinhando elementos de seleção de HTML em uma linha
  • Usando o FileReader no Chrome
  • One Solution collect form web for “TypeScript: TypeError b é indefinido”

    Paira se livrair do erro, você deve colocair uma declairação de class Medium antes de um Movie .

    Observe que o código js resultante não é apenas definições de function. São funções e variables. Isso faz toda a diferença. Porque você tem declairações e expressões. Mais sobre este assunto e por que com expressões na order js importa que você possa ler nesta excelente publicação: declairação de function JavaScript e order de avaliação

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.