- 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!
推薦閱讀
- 大學計算機應用基礎實踐教程
- 工程軟件開發技術基礎
- Python自動化運維快速入門
- 跟小海龜學Python
- Groovy for Domain:specific Languages(Second Edition)
- Visual Basic程序設計教程
- Blender 3D Incredible Machines
- HTML5+CSS3+JavaScript Web開發案例教程(在線實訓版)
- JavaScript:Moving to ES2015
- Java實戰(第2版)
- C語言從入門到精通
- Swift 4從零到精通iOS開發
- Software Development on the SAP HANA Platform
- Swift High Performance
- Visual Basic語言程序設計上機指導與練習(第3版)