- Learn React with TypeScript 3
- Carl Rippon
- 326字
- 2021-06-10 19:16:39
Configuring rules
The rules that tslint uses when checking our code are configurable in a file called tslint.json. In order to explore some of the rules, we first need a TypeScript file:
- So, let's create a file called orderDetail.ts with the following content in Visual Studio Code:
export interface Product {
name: string;
unitPrice: number;
}
export class OrderDetail {
product: Product;
quantity: number;
getTotal(discount: number): number {
const priceWithoutDiscount = this.product.unitPrice * this.quantity;
const discountAmount = priceWithoutDiscount * discount;
return priceWithoutDiscount - discountAmount;
}
}
- Let's now create a tslint.json file. We define the rules we want to implement in a rules field. Let's add the following rule:
{
"rules": {
"member-access": true
}
}
- A full list of the rules can be found at: https://palantir.github.io/tslint/rules/. The member-access rule forces us to explicitly declare the access modifier for classes. We haven't explicitly defined the property and method access modifiers in the OrderDetail class because they are public by default. So, with our linting rule in place, Visual Studio Code will highlight the lack of access modifiers to us:
- As we put a public access modifier in front of the properties and method, the warnings go away:
export class OrderDetail {
public product: Product;
public quantity: number;
public getTotal(discount: number): number {
const priceWithoutDiscount = this.product.unitPrice * this.quantity;
const discountAmount = priceWithoutDiscount * discount;
return priceWithoutDiscount - discountAmount;
}
}
The member-access rule forces us to write more code – how can this be a good thing? The rule is useful if you're reading the code and don't know TypeScript well enough to understand that class members without access modifiers are public. So, it's great if our team consists of developers who don't know TypeScript that well yet, but not necessarily for an experienced team of TypeScript developers.
Lots of the tslint rules are like member-access – in some teams, they will work well and in others, they don't really add value. This is why rules are configurable!
推薦閱讀
- 大學計算機基礎(第三版)
- 微信公眾平臺與小程序開發:從零搭建整套系統
- Neo4j Essentials
- The Computer Vision Workshop
- Java性能權威指南(第2版)
- PHP+MySQL網站開發項目式教程
- C語言程序設計學習指導與習題解答
- Oracle從入門到精通(第5版)
- 程序設計基礎教程:C語言
- Java EE 8 Application Development
- jQuery for Designers Beginner's Guide Second Edition
- 零基礎看圖學ScratchJr:少兒趣味編程(全彩大字版)
- iOS開發項目化入門教程
- Maven for Eclipse
- C語言程序設計與應用實驗指導書(第2版)