Non-null assertion should work on possibly-uninitialized auto-typed `let` variables

Aberta
#52,439 1 comentário 1 reação 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
35/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Estagnada
Stack de tecnologia
typescript
Domínio
compilers

Direção de pesquisa

Comece pelo TypeScript Playground vinculado e pelo exemplo com foo, bar e baz, depois acompanhe a inferência do compilador e o tratamento da asserção non-null para um let não inicializado. Considera-se concluído quando foo! for aceito com o tipo string em vez de produzir um erro de implicit-any, enquanto bar continuar sendo inferido como string | undefined.

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

Descrição

Experience Enhancement Help Wanted Suggestion

Bug Report

🔎 Search Terms

non-null postfix bang implicit any

🕗 Version & Regression Information
  • This is the behavior in every version I tried
⏯ Playground Link

This is the link

💻 Code
let foo;
if (Math.random() > 0.5) {
  foo = "hello";
}
// bar: string | undefined, seems fine
let bar = foo;
/* -- pretend I know foo is defined for other reasons -- */
// Error, foo is implicitly any
let baz = foo!;
🙁 Actual behavior

Implicit any on foo!

🙂 Expected behavior

Since the inferred type of foo (as seen in bar) is string | undefined, foo! should trivially have the type string

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.