Create a new type after deleting a property from object

Aberta
#42,069 0 comentários 3 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
25/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
typescript
Domínio
compilers

Direção de pesquisa

Comece reproduzindo o exemplo do TypeScript v4.13 no Playground vinculado e compare o erro de atribuibilidade relatado com o comportamento esperado após excluir bar.foo. Leia a issue relacionada #13783 para obter o contexto anterior; considera-se concluído quando o exemplo não relatar mais o erro, preservando o tratamento correto de propriedades nullable.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Awaiting More Feedback Suggestion

TypeScript Version: v4.13

Search Terms: delete property from object new type

Code

interface ApiData {
    foo?: string | null;
}

interface Props {
    foo?: string;
}

function test(props: Props) {
    console.log(props.foo);
} 

const bar: ApiData = {
    foo: null
}

if (bar.foo === null) {
    delete bar.foo;
}

test(bar);

Expected behavior:
No type error should occur when calling test with the argument bar since we have deleted foo from bar when foo is null.

Actual behavior:
The following error is reported by TS: Argument of type 'ApiData' is not assignable to parameter of type 'Props'. Types of property 'foo' are incompatible. Type 'string | null | undefined' is not assignable to type 'string | undefined'. Type 'null' is not assignable to type 'string | undefined'.(2345)

Playground Link: https://www.typescriptlang.org/play?#code/JYOwLgpgTgZghgYwgAgIIAdgBE5jsgbwChlTkYB7CgfgC5kBnMKUAc2QB9kQBXAGz4BuIgF8iRUJFiIUABSgV0DQiTKUa9JixCthYojB4gEYYBRDJITABToFS+vMUMAlCrLIE5hhT4QAdHwUrLb2DP7qLnrI4l4gTMgARnBQ9BjYuPgAvO5qVPS8AqLiwDDI1slQEVTIWXXc-HxuxB4AJhB+kEkp1RR64lZgFSlRQA

Related Issues: https://github.com/microsoft/TypeScript/issues/13783

Linguagem predominante
Go
Estrelas
111k
Forks
14.4k
Merge médio
1d 19h
PRs com merge (30d)
117

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de microsoft/TypeScript

Todas as issues de microsoft/TypeScript

Issues semelhantes

Mais issues de Go

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.