gpt4 book ai didi

javascript - typescript 中 `typeof x`的类型是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 21:27:39 25 4
gpt4 key购买 nike

在 typescript 中你可以这样定义一个类:

class Sup {

static member: any;
static log() {
console.log('sup');
}
}

如果您执行以下操作:

let x = Sup; 

为什么 x 的类型等于 typeof Sup(当我在 vscode 中突出显示类型时)以及 typeof Sup 是什么意思?这是否链接到 typeof 运算符?

此外,您如何输入类似let y = Object.create(Sup) 的内容?这是否键入为 let y: typeof Sup = Object.create(Sup)

最佳答案

typeof 在 TypeScript 的类型空间中与在普通 JS 中具有不同的含义。它是一个运算符,用于获取值空间中存在的事物的类型。

let person = { name: 'bob', age: 26 }

type Person = typeof person // Person is { name: string, age: number }

// These are all equivalent
let personRef1: { name: string, age: number } = person
let personRef2: typeof person = person
let personRef3: Person = person
let personRef4 = person

// more examples
let secret = 'helloworld'
type Secret = typeof secret // string

let key = 123
type Key = typeof key // number

let add = (a: number, b: number) => a + b
type Add = typeof add // (a: number, b: number) => number

因此,当您将 SomeClass 分配给变量时,变量的类型将为 typeof SomeClass。它没有像上面的示例那样简化的唯一原因是因为没有办法明确地简化类的类型;为简单起见,它保持为 typeof SomeClass

关于javascript - typescript 中 `typeof x`的类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50840740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com