microsoft / microsoft/TypeScript
unclear how to make function argument check produce the same errors as variable assignment
Aperta
@sandersn ci sta già lavorando.
Dal 25/1/2019.
Needs Investigation
- Lingua principale
- Go
- Stelle
- 111k
- Fork
- 14.3k
- Merge medio
- 2g 4h
- PR unite (30g)
- 132
Descrizione
in the following code
type A = {
a?: number
b?: number
}
type B = {
a?: number
knownField?: number
}
type C = {
a?: A,
knownField?: number | [A, B] | A
}
const c: C = {
a: {
a: 1,
b: 1,
},
knownField: [{ a: 1 }, {
knownField: 1,
unknownField: 1,
}],
}
const fn = (c: C) => {}
fn({
a: {
a: 1,
b: 1,
},
knownField: [{ a: 1 }, {
knownField: 1,
unknownField: 1,
}],
})
- in the case of variable assignment it correctly highlights the
unknownFieldand produces a nice error that saysObject literal may only specify known properties, and 'unknownField' does not exist in type 'B'. - but in the case of the same value passed as a function argument (of the same type) it highlights the top-level field and a different, less readable error
Type '({ a: number; } | { b: number; unknownField: number; })[]' is missing the following properties from type '[A, B]': 0, 1
am I missing something? is there a way to make sure I get the same error and highlighting in both cases?
in typescript playground:

Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Valutazione
Questa issue non è ancora stata valutata.