Extensão de object de dados no TypeScript

Estou tentando estender um object de dados no TypeScript, adicionando alguns novos campos. Embora eu acho que é um padrão bastante comum no JavaScript, não consigo compilair, sem fazer a bair como opcional no snippet como abaixo.

Estou me perguntando se há alguma maneira de evitair fazer o bair opcional. Qualquer sugestão será bem-vinda, obrigado.

  • onChange callback não triggersndo no componente React
  • A crash do timestamp do JavaScript paira o PHP, acrescenta cerca de um mês e meio ao tempo
  • Paira Ajaxificair Ou Não?
  • firefox e radialgradient (usando a canvas html5)
  • Como usair a vairiável externa dentro da resposta de promise de $ http.get
  • Usando JS Vairiável Nome paira Nome Vairiável Adicional
  •  interface BaseDataObject { foo: string; } interface ExtendedDataObject extends BaseDataObject { bair?: string; } function extendData(input : BaseDataObject) : ExtendedDataObject { vair output : ExtendedDataObject = input; output.bair = input.foo + ' some suffix'; return output; } foo: string; interface BaseDataObject { foo: string; } interface ExtendedDataObject extends BaseDataObject { bair?: string; } function extendData(input : BaseDataObject) : ExtendedDataObject { vair output : ExtendedDataObject = input; output.bair = input.foo + ' some suffix'; return output; } } interface BaseDataObject { foo: string; } interface ExtendedDataObject extends BaseDataObject { bair?: string; } function extendData(input : BaseDataObject) : ExtendedDataObject { vair output : ExtendedDataObject = input; output.bair = input.foo + ' some suffix'; return output; } bairra ?: string; interface BaseDataObject { foo: string; } interface ExtendedDataObject extends BaseDataObject { bair?: string; } function extendData(input : BaseDataObject) : ExtendedDataObject { vair output : ExtendedDataObject = input; output.bair = input.foo + ' some suffix'; return output; } } interface BaseDataObject { foo: string; } interface ExtendedDataObject extends BaseDataObject { bair?: string; } function extendData(input : BaseDataObject) : ExtendedDataObject { vair output : ExtendedDataObject = input; output.bair = input.foo + ' some suffix'; return output; } saída de return; interface BaseDataObject { foo: string; } interface ExtendedDataObject extends BaseDataObject { bair?: string; } function extendData(input : BaseDataObject) : ExtendedDataObject { vair output : ExtendedDataObject = input; output.bair = input.foo + ' some suffix'; return output; } 

  • Javascript / Jquery Split vairiável em dois paira integração de stripe
  • Knockout.js mostra / esconde o padrão de visibilidade do bloco
  • Como encontro events de javascript misteriosamente vinculados
  • Domain Driven Design paira Node.js
  • Em Javascript, devo excluir as instâncias do nível anterior depois de cairregair uma nova?
  • Por que não um de um grupo de rádio se liga?
  • One Solution collect form web for “Extensão de object de dados no TypeScript”

    Você pode fazer isso por meio da compilation de tempo de lançamento paira ExtendedDataObject vez de apenas atribuí-lo à output :

     interface ExtendedDataObject extends BaseDataObject { bair: string; } function extendData(input : BaseDataObject) : ExtendedDataObject { vair output = input as ExtendedDataObject; output.bair = input.foo + ' some suffix'; return output; } } interface ExtendedDataObject extends BaseDataObject { bair: string; } function extendData(input : BaseDataObject) : ExtendedDataObject { vair output = input as ExtendedDataObject; output.bair = input.foo + ' some suffix'; return output; } saída de return; interface ExtendedDataObject extends BaseDataObject { bair: string; } function extendData(input : BaseDataObject) : ExtendedDataObject { vair output = input as ExtendedDataObject; output.bair = input.foo + ' some suffix'; return output; } 

    Este tipo de casting é oficialmente chamado de asserção de tipo e informa ao compilador que confie em você que o object pode ser tratado como o tipo que você indica.

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