[TypeScript] type、typeof、keyof

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[TypeScript] type、typeof、keyof相关的知识,希望对你有一定的参考价值。

参考技术A type用于定义类型,常用于定义类型别名(类型别名就是用来给一个类型起个新名字, 类型别名常用于联合类型。

几乎 interface 的所有特性 type都有, type与interface 核心的区别在于 type 一旦定义就不能再添加新的属性,而 interface 总是可扩展的。

在 TypeScript 中,typeof 操作符用来获取一个变量或对象的类型; 巧了JavaScript中也有typeof , 先来复习下在JavaScript中的用法

TypeScript 中的typeof:

typeof也可以获取函数的类型:

keyof 操作符可以用于获取某种类型的所有键,其返回类型是联合类型
与typeof 联合使用:

typescript 构造函数,带typeof的引用类

class Greeter {
    static standardGreeting = "Hello, there";
    greeting: string;
    greet() {
        if (this.greeting) {
            return "Hello, " + this.greeting;
        }
        else {
            return Greeter.standardGreeting;
        }
    }
}

let greeter1: Greeter;
greeter1 = new Greeter();
console.log(greeter1.greet());

let greeterMaker: typeof Greeter = Greeter;
greeterMaker.standardGreeting = "Hey there!";

let greeter2: Greeter = new greeterMaker();
console.log(greeter2.greet());

以上是关于[TypeScript] type、typeof、keyof的主要内容,如果未能解决你的问题,请参考以下文章

Typescript + Express:类型“typeof e”没有兼容的调用签名

如何在TypeScript中写一个typeof val === "undefined "帮助函数?

type 'typeof globalThis' 没有索引签名

react-router-dom TypeScript TS2322:类型'typeof Index'不可分配给类型

TypeScript keyof 和 typeof

TypeScript中 typeof ArrayInstance[number] 剖析