TypeScript-Version:
nächtlich (1.9.0-dev.20160217)
Code
class Example {
get foo() {
return true;
}
baz(example: Example) {
example.foo;
}
bar(example: Example | Object) {
example.foo; // error TS2339: Property 'foo' does not exist on type 'Example | Object'.
}
}
Erwartetes Verhalten:
example.foo
würde in keiner der Methoden einen Fehler auslösen.
Tatsächliches Verhalten:
example.foo
wenn example
Example | Object
wirft:
error TS2339: Property 'foo' does not exist on type 'Example | Object'.
Dies ist das normale Verhalten von TypeScript, da es Sie vor etwas schützt, das möglicherweise kein .foo
.
Wenn dies funktionieren soll, müssen Sie den Typ auf etwas einschränken, das .foo
:
class Example {
get foo() {
return true;
}
baz(example: Example) {
example.foo;
}
bar(example: Example | Object) {
if (example instanceof Example) {
example.foo;
}
}
}
Hilfreichster Kommentar
Dies ist das normale Verhalten von TypeScript, da es Sie vor etwas schützt, das möglicherweise kein
.foo
.Wenn dies funktionieren soll, müssen Sie den Typ auf etwas einschränken, das
.foo
: