[TypeScript] 编程实践之1: Google的TypeScript代码风格2:基本概念

【TypeScript系列教程05】保留关键字 目录 TypeScript 保留关键字 TypeScript 保留关键字 TypeScript 保留关键字如下表所示: 阅读详情

2 基本概念

本文档的其余部分是TypeScript编程语言的正式规范,旨在作为ECMAScript 2015 Language Specification(特别是ECMA-262标准,第6版)的附件来阅读。 本文档描述了TypeScript所添加的语法,以及TypeScript编译器执行的编译时处理和类型检查,但是由于ECMAScript规范涵盖了该内容,因此它仅极少讨论了程序的运行时行为。

2.1 语法约定

在整个文档中,使用ECMAScript语法的现有约定和生产名称来指定TypeScript语言添加的语法。 在TypeScript增强现有语法产生的地方,就这样指出。 例如:

声明:(已修改)
	…
	接口声明
	类型别名声明
	枚举声明

“(Modified”批注指示已替换现有语法产生式,并且“…”引用原始语法产生式的内容。

与ECMAScript语法相似,如果在语法的产生式的右侧出现短语“ [此处没有LineTerminator]”,则表示如果LineTerminator出现在语法中的输入流中,则表示产生的结果不匹配。 指示位置。

2.2 命名

TypeScript编译器的核心目的是跟踪程序中的命名实体,并根据其指定的含义验证它们的使用。 TypeScript中的名称可以根据上下文以多种方式编写。 具体来说,名称可以写为

  • 一个IdentifierName,
  • 属性名称中的StringLiteral,
  • 属性名称中的NumericLiteral,或者
  • 一个ComputedPropertyName,它表示一个众所周知的符号(2.2.3)。

最常见的是,名称的编写要符合标识符的产生,即不是保留字的任何IdentifierName。

2.2.1 保留字

以下关键字是保留关键字,不能用作标识符:

break             case              catch             class  
const             continue          debugger          default  
delete            do                else              enum  
export            extends           false             finally  
for               function          if                import  
in                instanceof        new               null  
return            super             switch            this  
throw             true              try               typeof  
var               void              while             with

以下关键字不能在严格模式代码中用作标识符,但在其它方面不受限制:

implements        interface         let               package  
private           protected         public            static  
yield

以下关键字不能用作用户定义的类型名称,但不受其他限制:

any               boolean           number            string  
symbol

以下关键字在某些情况下具有特殊含义,但是有效的标识符:

abstract          as                async             await  
constructor       declare           from              get  
is                module            namespace         of  
require           set               type

2.2.2 属性命名

以下是ECMAScript语法的PropertyName产生:

PropertyName:
	LiteralPropertyName
	ComputedPropertyName

LiteralPropertyName:
	标识符名称
	字符串字面量
	数值文学

ComputedPropertyName:
	[AssignmentExpression]

属性名称可以是任何标识符(包括保留字),字符串文字,数字文字或计算出的属性名称。 字符串文字可用于为属性名称提供无效标识符,例如包含空格的名称。 数字文字属性名称等效于字符串文字属性名称,其中包含数字文字的字符串表示形式,如ECMAScript规范中所定义。

2.2.3 计算属性命名

ECMAScript 2015允许对象文字和类使用计算的属性名称声明成员。 计算的属性名称指定一个表达式,该表达式在运行时计算实际的属性名称。 由于最终属性名称在编译时未知,因此TypeScript只能对使用计算的属性名称声明的实体执行有限的检查。 但是,可以在需要PropertyName的任何地方使用计算出的属性名称的子集(称为众所周知的符号),包括类型内的属性名称。 如果计算的属性名称具有以下形式,则它是一个众所周知的符号:

[ Symbol . xxx ]

在众所周知的符号中,点右边的标识符必须表示全局变量’Symbol’类型的原始类型符号的属性,否则会发生错误。

在指定ComputedPropertyName的PropertyName中,除非属性名称出现在对象文字(第4.5节)的属性赋值或非环境类(第8.4节)的属性成员声明中,否则需要计算出的属性名称来表示众所周知的符号 )。

下面是一个接口的示例,该接口使用众所周知的符号名称声明属性:

interface Iterable<T> {  
    [Symbol.iterator](): Iterator<T>;  
}

TODO:更新以处理computed property names with literal expressions。

2.3 声明

声明在其关联的声明空间中引入名称。 名称在其声明空间中必须是唯一的,并且可以表示值,类型或命名空间或它们的某种组合。 实际上,一个名称最多可以具有三个不同的含义。 例如:

var X: string;    // Value named X

type X = number;  // Type named X

namespace X {     // Namespace named X  
    type Y = string;  
}

表示值的名称具有关联的类型(第3节),可以在表达式中引用(第4.3节)。 表示类型的名称可以单独在类型引用中使用,也可以在类型引用中的点的右侧使用(第3.8.2节)。 表示命名空间的名称可以在类型引用中点的左侧使用。

当引用具有多种含义的名称时,引用所处的上下文将确定含义。 例如:

var n: X;        // X references type  
var s: X.Y = X;  // First X references namespace, second X references value

在第一行中,X引用类型X,因为它出现在类型位置。在第二行中,第一个X引用命名空间X,因为它出现在类型名称中的点之前,而第二个X引用变量X,因为它出现在表达式中。

声明为其声明的名称引入以下含义:

  • 变量,参数,函数,生成器,成员变量,成员函数,成员访问器或枚举成员声明引入了值的含义。
  • 接口,类型别名或类型参数声明引入了类型含义。
  • 类声明引入了值含义(构造函数)和类型含义(类类型)。
  • 枚举声明引入了值的含义(枚举实例)和类型的含义(枚举类型)。
  • 命名空间声明引入了命名空间含义(类型和命名空间容器),并且,如果实例化命名空间(第10.1节),则引入值含义(命名空间实例)。
  • 导入或导出声明引入了导入或导出实体的含义。

以下是一些声明示例,它们为名称引入了多种含义:

class C {      // Value and type named C  
    x: string;  
}

namespace N {  // Value and namespace named N  
    export var x: string;  
}

声明空间的存在如下:

  • 全局命名空间,每个模块和每个声明的命名空间都为其包含的实体(无论是本地实体还是导出实体)都具有声明空间。
  • 每个模块为其导出的实体都有一个声明空间。模块中的所有导出声明都将占该声明空间。
  • 每个声明的命名空间都有一个用于其导出实体的声明空间。命名空间中的所有导出声明都对此声明空间有所贡献。已声明的命名空间的声明空间与具有相同的根容器和从该根容器开始具有相同的合格名称的其他已声明的命名空间共享。
  • 每个类声明都有一个用于实例成员和类型参数的声明空间,以及一个用于静态成员的声明空间。
  • 每个接口声明都有一个用于成员和类型参数的声明空间。接口的声明空间与其他具有相同根容器和从该根容器开始具有相同限定名称的接口共享。
  • 每个枚举声明都有一个用于其枚举成员的声明空间。一个枚举的声明空间与其他具有相同根容器且从该根容器开始具有相同限定名称的枚举共享。
  • 每个类型别名声明都有一个用于其类型参数的声明空间。
  • 每个类似函数的声明(包括函数声明,构造函数声明,成员函数声明,成员访问器声明,函数表达式和箭头函数)都有一个用于局部变量和类型参数的声明空间。该声明空间包括参数声明,所有局部var和函数声明,以及局部let,const,类,接口,类型别名和枚举声明,这些声明立即出现在函数体内,并且不再嵌套在块中。
  • 每个语句块都有一个声明空间,用于在该块中立即发生的本地let,const,类,接口,类型别名和枚举声明。
  • 每个对象文字都有其属性的声明空间。
  • 每个对象类型文字都有其成员的声明空间。

没有顶级导入或导出声明的源文件中的顶级声明属于全局命名空间。具有一个或多个顶级导入或导出声明的源文件中的顶级声明属于该源文件表示的模块。

实体的容器定义如下:

  • 在命名空间声明中声明的实体的容器就是该命名空间声明。
  • 在模块中声明的实体的容器就是该模块。
  • 在全局命名空间中声明的实体的容器是全局命名空间。
  • 模块的容器是全局命名空间。

实体的根容器定义如下:

  • 非导出实体的根容器是该实体的容器。
  • 导出实体的根容器是实体容器的根容器。

直观地,实体的根容器是可从中访问实体的最外面的模块或命名空间主体。

接口,枚举和命名空间是“开放式”的,这意味着相对于公共根具有相同限定名称的接口,枚举和命名空间声明会自动合并。 有关更多详细信息,请参见第7.2节、第9.3节和第10.5节。

类中的实例成员和静态成员位于单独的声明空间中。 因此,以下内容是允许的:

class C {  
    x: number;          // Instance member  
    static x: string;   // Static member  
}

2.4 范围

名称的范围是程序文本的区域,在该区域内可以引用该名称声明的实体而无需对该名称进行限定。 名称的范围取决于声明名称的上下文。 下面按从最外到最内的顺序列出了上下文:

  • 在全局命名空间中声明的名称的范围是整个程序文本。
  • 在模块中声明的名称范围是该模块的源文件。
  • 在命名空间声明中声明的导出名称的范围是该命名空间声明的主体,以及相对于该根具有相同根和相同限定名称的每个命名空间声明。
  • 在命名空间声明中声明的非导出名称的范围是该命名空间声明的主体。
  • 在类或接口声明中声明的类型参数名称的范围是整个声明,包括约束,extends子句,Implements子句和声明主体,但不包括静态成员声明。
  • 在类型别名声明中声明的类型参数名称的范围是整个类型别名声明。
  • 枚举声明中声明的成员名称的范围是该声明的主体,以及每个相对于该根具有相同根和相同限定名称的枚举声明。
  • 在调用或构造签名中声明的类型参数名称的范围是整个签名声明,包括约束,参数列表和返回类型。如果签名是功能实现的一部分,则范围包括功能主体。
  • 在调用或构造签名中声明的参数名称的范围是签名声明的其余部分。如果签名是带有主体的类函数声明的一部分(包括函数声明,构造函数声明,成员函数声明,成员访问器声明,函数表达式或箭头函数),则范围包括该类函数声明的主体。
  • 在类似函数的声明主体中任何地方声明的局部var或函数名称的范围是该类似函数的声明的主体。
  • 立即在类函数声明的主体内声明的局部let,const,类,接口,类型别名或枚举声明的范围是该类函数声明的主体。
  • 立即在语句块中声明的局部let,const,类,接口,类型别名或枚举声明的范围是该语句块的主体。

作用域可能会重叠,例如通过嵌套命名空间和函数。当两个名称的范围重叠时,具有最内部声明的名称将具有优先权,并且不能或只能通过限定来访问外部名称。

当标识符解析为PrimaryExpression(第4.3节)时,仅考虑作用域中具有值含义的名称,而忽略其他名称。

当标识符解析为TypeName时(第3.8.2节),仅考虑作用域中具有类型含义的名称,而忽略其他名称。

当标识符解析为NamespaceName(第3.8.2节)时,仅考虑作用域中具有命名空间含义的名称,而忽略其他名称。

待办事项:包括用于别名解析的特定规则。

请注意,类和接口成员永远不会直接在作用域中,只能通过将点(’.’)运算符应用于类或接口实例来访问它们。这甚至包括构造函数或成员函数中当前实例的成员,可通过将点运算符应用于此成员来访问它们。

正如上述规则所暗示的那样,在命名空间中本地声明的实体在范围上比在相同命名空间的其他命名空间声明中声明的导出实体更近。例如:

var x = 1;  
namespace M {  
    export var x = 2;  
    console.log(x);     // 2  
}  
namespace M {  
    console.log(x);     // 2  
}  
namespace M {  
    var x = 3;  
    console.log(x);     // 3  
}
codestyle:JavaScript和TypeScript样式指南 代码风格 风格指南 配套 npm软件包列表,可帮助检查项目中的代码样式: JavaScript 打字稿 不推荐使用 (改为使用eslint-config-loris ) 立即下载

相关推荐

利用Python实现纬度加权平均(即NCL中的wgt_areaave)

当处理全球数据的时候,最常见的分析就是全球、北半球平均了,这时候一定要注意要根据纬度等信息进行加权,求加权平均,要不然结果肯定会不准。但是对于Python中,常规的计算包里面是没有的,或许现在有其他包可以实现,也可以告诉我~。

记录基于python语言处理气象问题的一些代码,包括不限于气象数据读取、机器学习和深度学习建模。 5744

js中的关键字和保留字(保留字不能用作声明变量名,也不能用作属性名)

ECMA-262 描述了一组具有特定用途的关键字。这些关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。按照规则,关键字也是语言保留的,不能用作标识符。以下就是ECMAScript的全部关键字(带号上标的是第5 版新增的关键字): break do instanceof typeof case else new var catch finally return void continue for switch while debugger function this with default i

lyclyc_的博客 2631

Arthas实战(3)- CPU使用率高问题排查

Arthas实战(3)- CPU使用率高问题排查

java_liuyuan的博客 1731

前端JavaScript '严格模式' 的最全总结

在阅读jQuery源码的时候,发现jQuery用到的是’use strict’严格模式。因此就去查阅了一些资料来补充自己对严格模式的认识。下面是参考【javascript高级程序设计(第三版)】的内容。 1.严格模式(strict mode) 1.1 什么是严格模式   ‘严格模式’最早引入是ECMAScript5。通过严格模式,可以在函数内部选择进行较为严格的全局或局部的错误...

weixin_45492475的博客 969

别再到处找DEM了!手把手教你免费下载90米、30米、12.5米全球高程数据(附国内网盘链接)

本文详细介绍了如何免费获取全球90米(SRTM3)、30米(ASTER GDEM)和12.5米(ALOS)高精度DEM数据,并提供了国内网盘链接以绕过国际平台访问障碍。通过对比不同数据源的特点和适用场景,帮助用户根据项目需求选择最合适的DEM数据,同时分享了数据处理和质量提升的实用技巧,实现从数据获取到应用的无缝衔接。

weixin_28725949的博客 669

奥比中光Dabai深度相机SDK在Ubuntu22.04的兼容性安装指南

本文详细指导如何在Ubuntu22.04系统上安装奥比中光Dabai深度相机的SDK。针对新旧版本不兼容的核心问题,重点推荐使用经过验证的v1.10.18版本SDK,并提供了从系统依赖检查、SDK下载安装、Python环境配置到编译测试的完整步骤,帮助用户成功解决安装难题并实现相机驱动。

j2k3l4的博客 999

JavaScript中的严格模式

严格模式 严格模式是JavaScript中的一种限制性更强的变种方式 严格模式可以跟非严格模式共存 目的 首先,在严格模式中将JavaScript陷阱直接报错 其次,修正了一些引擎难以优化的错误:同样的代码在严格模式下更快 最后,严格模式禁用了一些有可能在为来版本中定义的语法 全局开启严格模式 在要进行严格模式的代码前加上 "use strict" // "use strict"; //全局开启严格模式 会在全局跟局部都有效 // v = 100; // console.log(v); function

weixin_44492275的博客 948

面向网络攻击行为可视化分析系统实现【WebSocket + 可视化】

本系统主要应用于网站运维管理,它解决了网站运维人员排查网络攻击行为复杂且繁琐等问题,提高了运维人员网络安全分析的效率和准确性。

oNew_Lifeo的博客 1620

JavaScript 高级语言编程(第三版)笔记----第三章

ECMAScript 第三章 基本概念 3.1 语法 3.1.1 区分大小写 Javascript 中的一切(变量、函数名和操作符)都区分大小写 3.1.2 标识符 第一个字符必须是字母、下划线(_)或一个美元符号($) 其他字母可以是字母、下划线、美元符号或数字 Tip: 字母可以包含扩展的ASCII或Unicode字母字符,但是不推荐这样做 3.1.3 注释 // 单行注释 /*多行(块级) *注释 */ 3.1.4 严格模式 ECMAScript 5 引入了严格模式的概念,启动

Heriou的博客 692

高通平台 Android T 蓝牙技术全解析:A2DP 与 AVRCP 核心代码路径与交互流程

A2DP 接收端 - 连接流程(AVDTP 打开)

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 288

PyTorch强化学习实战(3)——Gymnasium API扩展功能

我们已经学习了编写智能体必需的 Gymnasium 核心功能,其余 API 功能部分虽然非必需,但能显著提升开发效率和代码整洁度。在本节中,我们简要地介绍了 Gymnasium API 的扩展功能,学习了如何以模块化的方式扩展现有环境的功能,并熟悉了使用包装器可视化智能体活动的方法。

盼小辉丶的博客 1195

[TypeScript] 编程实践之1: Google的TypeScript代码风格1:介绍

TypeScript语言规范1 介绍1.1 环境声明1.2 函数类型1.3 对象类型1.4 结构子类型化1.5 上下文类型推断1.6 类1.7 枚举类型1.8 字符串参数重载1.9 通用类型和功能1.10 命名空间1.11 模块 版本1.8 2016年1月 Microsoft自2012年10月1日起根据Open Web Foundation最终规范协议版本1.0(“ OWF 1.0”)提供此规范。OWF 1.0可以从http://www.openwebfoundation.org/legal/the-owf

魔豆(Magicbean)的博客 1398

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

[TypeScript] 编程实践之1: Google的TypeScript代码风格13:语法

TypeScript语言规范A 语法A.1 类型A.2 表达式A.3 语句A.4 函数A.5 接口A.6 类A.7 枚举A.8 命名空间A.9 Script和ModulesA.10 Ambient A 语法 本附录包含在主文档中找到的语法摘要。 如2.1节所述,TypeScript语法是ECMAScript 2015语言规范(特别是ECMA-262标准,第6版)中定义的语法的超集,本附录仅列出从ECMAScript语法中新增或修改的产品。 A.1 类型 TypeParameters: < TypeP

魔豆(Magicbean)的博客 706

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

[TypeScript] 编程实践之1: Google的TypeScript代码风格5:语句

TypeScript语言规范5 语句5.1 块5.2 变量语句5.2.1 简单变量声明5.2.2 析构变量声明5.2.3 implied类型5.3 let和const声明5.4 If,Do和While语句5.5 for语句5.6 for-in语句5.7 For-of语句5.8 Continue语句5.9 Break语句5.10 Return语句5.11 With语句5.12 Switch语句5.13 Throw语句5.14 Try语句 5 语句 本章介绍TypeScript为JavaScript语句提供的静

魔豆(Magicbean)的博客 1371

[TypeScript] 编程实践之1: Google的TypeScript代码风格3:类型

TypeScript语言规范3 类型3.1 Any类型3.2 基本类型3.2.1 Number类型3.2.2 Boolean类型3.2.3 String类型3.2.4 Symbol类型3.2.5 Void类型3.2.6 Null类型3.2.7 Undefined类型3.2.8 Enum类型3.2.9 String类型3.3 Object类型3.3.1 命名类型引用3.3.2 Array类型3.3.3 Tuple类型3.3.4 Function类型3.3.5 Constructor类型3.3.6 Member

魔豆(Magicbean)的博客 786

[TypeScript] 编程实践之1: Google的TypeScript代码风格11:Script和Modules

TypeScript语言规范11 Scripts和Modules11.1 程序和源文件11.1.1 源文件依赖11.2 Script11.3 Modules11.3.1 Module命名11.3.2 导入声明11.3.3 Import Require声明11.3.4 Export声明11.3.4.1 Export修饰符11.3.4.2 Export Default声明11.3.4.3 Export list声明11.3.4.4 导出成员集11.3.5 Export赋值11.3.6 CommonJS模块11.

魔豆(Magicbean)的博客 854

[TypeScript] 编程实践之1: Google的TypeScript代码风格8:类

TypeScript语言规范8 类8.1 类声明8.1.1 类继承规范8.1.2 类体8.2 成员8.2.1 实例成员和静态成员8.2.2 可访问性8.2.3 继承和重置8.2.4 class类型8.2.5 构造函数类型8.3 构造函数声明8.3.1 构造函数参数8.3.2 超类调用8.3.3 自动构造函数8.4 属性成员函数声明8.4.1 成员变量声明8.4.2 成员函数声明8.4.3 成员访问者声明8.4.4 动态属性声明8.5 索引成员声明8.6 装饰者8.7 代码生成8.7.1 无extends从句

魔豆(Magicbean)的博客 468

[TypeScript] 编程实践之1: Google的TypeScript代码风格12:Ambients

TypeScript语言规范12 Ambients12.1 Ambients声明12.1.1 Ambient变量声明12.1.2 Ambient函数声明12.1.3 Ambient类声明12.1.4 Ambient枚举声明12.1.5 Ambient命名空间声明12.2 Ambient模块声明 12 Ambients 环境声明用于在现有JavaScript代码上提供静态类型。 环境声明与常规声明的不同之处在于,不会为它们生成JavaScript代码。 环境声明不是引入新的变量,函数,类,枚举或命名空间,而是

魔豆(Magicbean)的博客 700

[TypeScript] 编程实践之1: Google的TypeScript代码风格9:枚举

TypeScript语言规范9 枚举9.1 枚举声明9.2 枚举成员9.3 声明合并9.4 常量枚举声明9.5 代码生成 9 枚举 枚举类型是Number原语类型的独特子类型,具有一组关联的命名常量,这些常量定义了枚举类型的可能值。 9.1 枚举声明 枚举声明声明一个枚举类型和一个枚举对象。 EnumDeclaration: constopt enum BindingIdentifier { EnumBodyopt } EnumDeclaration在包含的声明空间中引入了命名类型(枚举类型)和命名值(

魔豆(Magicbean)的博客 528

[TypeScript] 编程实践之1: Google的TypeScript代码风格10:命名空间

TypeScript语言规范10 命名空间10.1 命名空间声明10.2 命名空间体10.3 导入别名声明10.4 导出声明10.5 声明合并10.6 代码生成 10 命名空间 命名空间提供了一种在命名容器的层次结构中组织代码和声明的机制。 命名空间具有命名的成员,每个成员表示一个值,一个类型或一个命名空间,或其某种组合,这些成员可以是本地的也可以是导出的。 命名空间的主体对应于一次执行的功能,从而提供了一种机制,用于确保局部状态并确保隔离。 命名空间可以看作是立即调用的函数表达(IIFE)模式的形式化形式

魔豆(Magicbean)的博客 562

[TypeScript] 编程实践之1: Google的TypeScript代码风格7:接口

TypeScript语言规范7 接口7.1 接口声明7.2 声明合并7.3 接口扩展类7.4 动态类型检查 7 接口 接口提供了命名和参数化对象类型并将现有命名对象类型组合为新对象的能力。 接口没有运行时表示—它们纯粹是编译时构造。 接口对于记录和验证所需的属性形状,作为参数传递的对象以及从函数返回的对象特别有用。 因为TypeScript具有结构类型系统,所以具有一组特定成员的接口类型被认为与具有相同成员组的另一个接口类型或对象类型文字相同(并且可以替代)(请参阅第3.11.2节)。 类声明可以在自己的I

魔豆(Magicbean)的博客 468

Google 编程风格:C++、Python、JavaScript、Shell、TypeScript

Google 编程风格:C++、Python、JavaScript、Shell、TypeScript

freeking101的博客 5万+

[TypeScript] 编程实践之1: Google的TypeScript代码风格6:函数

TypeScript语言规范6 函数6.1 函数声明6.2 函数重载6.3 函数实现6.4 析构参数声明6.5 通用函数6.6 代码生成6.7 生成函数6.8 异步函数6.9 类型保护函数 6 函数 TypeScript扩展了JavaScript函数,以包括类型参数,参数和返回类型注释,重载,默认参数值和rest参数。 6.1 函数声明 扩展了函数声明,以允许在重载声明中省略函数主体。 FunctionDeclaration: ( Modified ) function BindingIdentifier

魔豆(Magicbean)的博客 484

[TypeScript] 编程实践之1: Google的TypeScript代码风格4:表达式

TypeScript语言规范4 表达式4.1 值和引用4.2 this关键字4.3 标识符4.4 文法4.5 Object文法4.6 数组文法4.7 模板文法4.8 括弧4.9 super关键字4.9.1 父类super调用4.9.2 父类属性存取4.10 函数表达式4.11 箭头函数4.12 Class表达式4.13 属性存取4.14 new操作算子4.15 函数调用4.15.1 重载解决方案4.15.2 类型参数推导4.15.3 语法歧义4.16 类型断言4.17 JSX表达式4.18 一元运算符4.1

魔豆(Magicbean)的博客 979

如何用gts在5分钟内统一团队TypeScript代码风格 [特殊字符]

还在为团队中TypeScript代码风格不一致而烦恼吗?每次代码评审都要花大量时间讨论缩进、引号、分号?gts就是你的终极解决方案!这款由Google开发的TypeScript风格指南、格式化器和linter,能让你在5分钟内为团队建立统一的代码规范。✨ ## 为什么选择gts?🤔 gts是Google官方的**TypeScript代码风格工具**,它集成了业界最佳实践,让你无需配置就能享受

gitblog_00749的博客 990
上一篇: [TypeScript] 编程实践之1: Google的TypeScript代码风格1:介绍
下一篇: [TypeScript] 编程实践之1: Google的TypeScript代码风格3:类型
魔豆Magicbean
博客等级 码龄19年 146粉丝 742原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值