Der Unterschied zwischen typeof in js und typescript typeof
In JavaScript typeof
ein Operator, der den Datentyp eines Werts zurückgibt. Es kann eine der folgenden Zeichenfolgen zurückgeben:
"undefined"
Zeigt an, dass der Wert undefiniert ist"boolean"
Gibt an, dass der Wert ein boolescher Wert ist"number"
Gibt an, dass der Wert ein numerischer Wert ist"bigint"
Zeigt an, dass der Wert eine große Ganzzahl ist"string"
Gibt an, dass der Wert eine Zeichenfolge ist"symbol"
Zeigt an, dass der Wert ein Symbol ist"function"
Zeigt an, dass der Wert eine Funktion ist"object"
Zeigt an, dass der Wert ein Objekt oder istnull
Es ist zu beachten, dass es
typeof null
sich im Gegenzug"object"
um ein Altlastenproblem handelt.
In TypeScript typeof
ist es ebenfalls ein Operator, kann aber zur Typbeurteilung verwendet werden. Es gibt eine Typzeichenfolge zurück, die den Typ eines Werts angibt. Bei Verwendung typeof
des Operators ist der zurückgegebene Typ der Typ in TypeScript, nicht der Typ in JavaScript. Zum Beispiel:
let x = 123;
let y: typeof x = 456; // y 的类型为 number,和 x 的类型相同
In diesem Beispiel wird typeof x
der zurückgegebene number
Typ verwendet, um y
den Typ der Variablen zu definieren.
Zu beachten ist außerdem, dass in TypeScript typeof
Operatoren auch verwendet werden können, um die Parametertypen, Rückgabewerttypen usw. einer Funktion abzurufen. Zum Beispiel:
function add(x: number, y: number) {
return x + y;
}
type AddFunc = typeof add; // AddFunc 类型为 (x: number, y: number) => number
In diesem Beispiel wird typeof add
der zurückgegebene (x: number, y: number) => number
Typ zum Definieren von Typaliasen verwendet AddFunc
.