说明:目前网上还没有最新的TypeScript官方文档的中文翻译,所以才有这样的翻译计划。因为本人也是TypeScript的初学者,不能保证翻译100%准确。如有错误,请在评论区指出;翻译内容:暂定翻译内容为TypeScriptHandbook,其他部分翻译文档稍后补充;项目地址:TypeScript-Doc-Zh,如果对你有帮助,可以点个star~本章官方文档地址:Keyof类型运算符,Typeof类型运算符Keyof类型运算符keyof类型运算符keyof类型运算符接受一个对象类型为一个参数,并基于它的一个键产生一个由字符串文字或数字文字组成的联合类型。以下类型P等同于类型“x”|“y”:类型点={x:数字;y:number};typeP=keyofPoint;^//typeP=keyofPoint如果keyof操作的类型有string或者number类型的索引签名,那么keyof会返回索引签名的类型:typeArrayish={[n:number]:unknown};typeA=keyof排列整齐;^//typeA=numbertypeMapish={[k:string]:boolean};typeM=keyofMapish;^//输入M=字符串|number注意这个例子中,M代表的类型是string|number-这是因为JavaScript对象键总是被强制为字符串,所以obj[0]等同于obj["0"]。keyof类型和mapping类型的结合会起到很大的作用,我们会在后面的章节中介绍。Typeof类型运算符typeof类型运算符JavaScript本身有一个typeof运算符,可以在表达式上下文中使用://print"string"console.log(typeof"Helloworld");TypeScript添加了一个可以在类型上下文中使用的typeof运算符typeof运算符允许您引用变量或属性的类型:lets="hello";letn:typeofs;^//letn:string用于像上面这样的基本类型,用处不大,但如果将typeof与其他类型运算符结合使用,可以轻松表达多种模式。例如,让我们看一下预定义类型ReturnType
