TypeScript 中的整洁代码
作者:互联网
不要添加不需要的上下文
如果您的类/类型/对象名称告诉您一些信息,请不要在您的变量名称中重复。
应避免:
输入 Car = { carMake : string ; 汽车型号:字符串; 汽车颜色:字符串; } 函数 打印(汽车:汽车):void { 控制台。日志( ` ${car.carMake} ${car.carModel} ( ${car.carColor} )` ); }
改为这样做:
输入 Car = { make : string ; 模型:字符串; 颜色:字符串; } 函数 打印(汽车:汽车):void { 控制台。日志( ` ${car.make} ${car.model} ( ${car.color} )` ); }
使用枚举
枚举可以帮助您记录代码的意图。例如,当我们关心值的不同而不是这些值的确切值时。
应避免:
const GENRE = { ROMANTIC : '浪漫' , DRAMA : '戏剧' , COMEDY : '喜剧' , DOCUMENTARY : '纪录片' , } 放映机。配置电影(类型。喜剧); class Projector { // 投影仪声明 configureFilm ( genre ) { switch (genre) { case GENRE . ROMANTIC : // 一些要执行的逻辑 } } }
改为这样做:
enum GENRE { ROMANTIC , DRAMA , COMEDY , DOCUMENTARY , } 放映机。配置电影(类型。喜剧); class Projector { // 投影仪声明 configureFilm ( genre ) { switch (genre) { case GENRE . ROMANTIC : // 一些要执行的逻辑 } }
函数名应该说明它们的作用
应避免:
function addToDate ( date: Date , month: number ): Date { // ... } const date = new Date (); // 从函数名很难看出添加了什么 addToDate (date, 1 );
改为这样做:
function addMonthToDate ( date: Date , month: number ): Date { // ... } const date = new Date (); addMonthToDate(日期,1);
比命令式编程更喜欢函数式编程
应避免:
const contributions = [ { name : 'Uncle Bobby' , linesOfCode : 500 }, { name : 'Suzie Q' , linesOfCode : 1500 }, { name : 'Jimmy Gosling' , linesOfCode : 150 }, { name : 'Gracie Hopper' , linesOfCode : 1000 } ]; 让totalOutput = 0 ; for (让i = 0 ; i < 贡献。长度;i++) { totalOutput += contributions[i]. 代码行; }
改为这样做:
const contributions = [ { name : 'Uncle Bobby' , linesOfCode : 500 }, { name : 'Suzie Q' , linesOfCode : 1500 }, { name : 'Jimmy Gosling' , linesOfCode : 150 }, { name : 'Gracie Hopper' , linesOfCode : 1000 } ]; const totalOutput = 贡献 。减少((totalLines,输出)=>总行数 + 输出。行数, 0 );
避免否定条件
应避免:
function isEmailNotUsed ( email: string ): boolean { // ... } if ( isEmailNotUsed (email)) { // ... }
改为这样做:
function isEmailUsed ( email: string ): boolean { // ... } if (! isEmailUsed (email)) { // ... }
更喜欢不变性
应避免:
接口 配置{ 主机:字符串; 端口:字符串; 数据库:字符串; }
改为这样做:
接口 配置{ 只读主机:字符串; 只读端口:字符串; 只读数据库:字符串; }