# TypeScript 编码规范
# 非必要情况下不能使用 any
// bad
const data: any = {
name: 'name',
age: 18,
address: 'beijing',
}
interface ListItem {
name: string
age: number
address: string
}
// good
const data: ListItem = {
name: 'name',
age: 18,
address: 'beijing',
}
如果一个对象有多层嵌套,并且数据过多,不确定性太大。可以使用 AnyObject
来代替 any
。
type AnyObject = Record<string, any>
# 接口 API 返回值需要使用 interface 进行声明
interface Params {
id: string
name: string
}
interface ListItem {
name: string
age: number
address: string
}
export function getListData(params: Params): Promise<ListItem[]> {
return request({
url: '/people/list',
params,
})
}
# 函数/方法注释
在使用 TypeScript 的情况下,函数的参数和返回值已经有类型定义了,所以注释不再需要标明参数和返回值的类型。
不建议使用的用法:
/**
* 加法函数
* @param a
* @param b
* @returns
*/
function sum(a: number, b: number) {
return a + b
}
建议使用的用法:
/**
* 加法函数
*/
function sum(a: number, b: number) {
return a + b
}