当前位置: 首页 > Web前端 > HTML

TypeScript官方手册翻译计划[7]:Typemanipulation-typeoperator

时间:2023-03-28 19:36:13 HTML

说明:目前网上还没有最新的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。它可以接受一个函数类型并返回它的返回值类型:typePredicate=(x:unknown)=>boolean;typeK=ReturnType;^//typeK=boolean如果函数名称直接用作参数ReturnType,那么我们会看到指示性错误:functionf(){return{x:10,y:3};}typeP=ReturnType;^//'f'指的是一个值,但在这里用作类型。您指的是'typeoff'吗?请记住,值与类型不同,这里应该传递类型而不是值,因此我们可以使用typeof来引用值f的类型:functionf(){return{x:10,y:3};}typeP=ReturnType;^/*输入P={x:数字;y:数字;}*/RestrictTypeScript有意限制typeofcan操作的表达式类型。具体来说,tyepof只能对标识符(例如变量名)或其属性进行操作。这可以防止开发人员编写他们认为可以工作但实际上不会工作的代码://Use=ReturnTypeletshouldContinue:typeofmsgbox("Areyousureyouwanttocontinue?");^//','预期。