Ich bin neu in Typoskript und ich möchte wissen, was das Dienstprogramm der optionalen Eigenschaft Klasse in Typoskript ist? Und was ist der Unterschied zwischen:Optionale Eigenschaft Klasse in Typoskript
a?: number;
a: number | undefined;
Ich bin neu in Typoskript und ich möchte wissen, was das Dienstprogramm der optionalen Eigenschaft Klasse in Typoskript ist? Und was ist der Unterschied zwischen:Optionale Eigenschaft Klasse in Typoskript
a?: number;
a: number | undefined;
Optional Eigenschaft: In Typoskript können Sie eine Eigenschaft in Ihrer Schnittstelle angeben, die optional sein. Angenommen, Sie haben eine Schnittstelle für Mitarbeiter und mittlerer Name ist optional dann Ihren Code wie folgt aussehen:
interface IEmployee {
firstName: string;
lastName: string;
middleName?: string;
}
Wenn jemand Ihre Schnittstelle verwenden IEmployee dann Middle optional sein, aber Vorname und Nachname ist obligatorisch.
let emp: IEmployee = { firstName: "Hohn", lastName: "Doe" }
Rohr Betreiber: Manchmal möchte man, dass eine Variable mehrere Art halten kann. Wenn Sie eine Eigenschaft als Nummer deklariert haben, kann sie nur die Nummer enthalten. Pipe-Operator kann Typoskript erkennen, dass es mehrere Typen enthalten kann. Ein anderer Fall, in dem der Pipe-Operator sehr nützlich ist, wenn Sie etwas von der Funktion zurückgeben und mehrere Typen zurückgeben können, hängt von der Bedingung ab.
Hope it
So ist es wichtig in der Kompatibilität der Typen. Dasselbe Beispiel funktioniert für die Klasse, oder? – asv
Pipe-Operator wird auch in der Klasse arbeiten, aber die optionale Eigenschaft ist nur für die Schnittstelle. Die optionale Eigenschaft in der Klasse hat keine Bedeutung. –
Der Unterschied zwischen einem optionalen Parameter helfen wird, und ein number | undefined
Parametertyp ist, dass Sie müssen ein Argument nicht liefern ...
function a(a?: number) {
return a;
}
function b(a: number | undefined) {
return a;
}
// Okay
a();
b(1);
// Not okay: Expected 1 arguments, but got 0.
b();
Dies gilt für Funktionen, Methoden und Konstruktoren.
Wenn Sie auf strikte Null-Kontrollen wechseln, werden Sie feststellen, dass jede optionale Parameter oder eine Eigenschaft, wird automatisch eine Union-Typ erhalten. Das bedeutet id
in dem unten stehenden Beispiel hat den Typen number | undefined
, auch wenn Sie nur number
angegeben:
// With strict null checks, this:
class Example {
id?: number;
}
// ... is the same as this:
class Example {
id?: number | undefined;
}
// ... and this:
class Example {
id: number | undefined;
}
Ich würde empfehlen, das erste Beispiel verwendet, wie es Ihre Syntax konsistent zwischen Eigenschaften und Parametern hält.
https://www.typescriptlang.org/docs/handbook/interfaces.html#optional-properties gibt Beispiele wo Sie sie verwenden könnten – jonrsharpe