使用 typeof

typeof 用于区分 numberstringbooleansymbol 时的类型。其他字符串常量不会出错,但也不会用于缩小类型。

instanceof 不同,typeof 可以使用任何类型的变量。在下面的例子中,foo 可以输入为 number | string 而没有问题。

这段代码( 试一试 ):

function example(foo: any) {
    if (typeof foo === "number") {
        // foo is type number in this block
        console.log(foo + 100);
    }

    if (typeof foo === "string") {
        // fooi is type string in this block
        console.log("not a number: " + foo);
    }
}

example(23);
example("foo");

版画

123
not a number: foo