一运二命三风水四积阴德五读书.你说运气 重不重要
虽然古话说的很玄乎 但翻译为现代话就是 一运二基因三二代(而不是二代玩不起风水)四做好人五读书
@
HanMeiM 为什么去掉形参类型名叫放弃优势呢? 去掉之后什么代码也没多写,类型也自动推断了. 你不就是要这个效果吗 本来能自动推断的,你非要给他加个错误类型
TestData 类型是兼容 Store 的,但是 (v: TestData )=>{} 这个函数类型 是不兼容 (v: Store)=>{} 这个函数类型的
可能是 ts 为了检测简单,不然还要把所有函数的参数再检测一遍.
我的建议:
去掉函数形参中的类型,此时 ts 会自动推断为 Store
传参时可以传 TestData 类型.
以下代码在 3.7.5 无报错
```typescript
export interface Store {
title: string // 加这个只是为了测试自动推断
[key: string]: any
}
type OnFinishCallback = (values: Store) => void
export interface Callbacks {
onFinish?: OnFinishCallback
}
export type TestData = Store & {
name: string
password: string
age: number
}
let a: TestData = { b: 123, age: 12, name: '1', password: '', title: '' }
let b: Store = a
const test1: OnFinishCallback = values => {
console.log(values.title) // 这里的 values 已经被自动推断过了
}
const test2: Callbacks['onFinish'] = values => {
console.log(values.title)
}
test1(a)
test1(b)
test2(a)
test2(b)
```
先用 postman 测试一下,你传的参数对不对.ok 了再去用代码写
adc 是 ad carry 的意思. 你见过有人叫蛮王 adc 的吗?
初学时用 1,现在为了追求速度用 2. postData 里面加上筛选条件,排序条件,场景
这样子做,所有的模型都写用通用接口,后端只需要为模型写几十行代码配置一下就完事.控制器都不需要写.
马上准备一个接口再聚合一下 /curd,只需要在现有的 queryExtra 中再加个 model 名就行
```typescript
type OrderKeys = 'id' | 'ctime'
type Scene = 'admin' | 'default'
interface QueryExtra extends BaseExtra<Scene> {}
type ActGetListParam = GetListParam<FilterKeys, OrderKeys, QueryExtra>
type AddData = Omit<Model, 'adeptLabelList' | 'department' | 'id'>
type EditData = AddData & Pick<Model, 'id'>
export async function lists<T = Model>(data: ActGetListParam) {
return bpost<{ list: T[] }>({
url: route + '/list',
data,
})
}
export async function detail<T = Model>(data: { id: number; scene?: Scene }) {
return bpost<{ detail: T }>({
url: route + '/detail',
data,
})
}
```
我是用一个接口. 接口用参数筛选.还有一个 scene 参数,默认 scene 是 default 查看自己的数据,如果 scene 是 admin 就要求管理员权限.
我们会写 b, 然后实际用的时候会再 map 一遍生成一个 ipMapDetail
a 方式不通用,万一 2 个 ip 一样呢.万一有些 ip 是 0.0.0.0 呢
我是 php tsx cpp java go 开发.我推荐 win10 作为开发环境. 我试过 ubuntu,也有一个 mac,最后还是觉得 windows 比较香.
我从来不学任何 win 的技术,也不会使用,写的服务端代码甚至都不考虑兼容 win. 平时用 jb 家族的 ide 编写.本地编写,远程运行. 开着一个 xshell 一样子写 linux,不会考虑 wsl,服务器根本不贵. 我觉得 win 下 工具比较方便. 在 win 下开发,在 linux 下运行. 身边的 mac 早就被废弃.唯一的作用就是用 xcode 编译 app. 很多人推荐 mac,我觉得如果专门做 ios 开发的可以用,像我们大部分程序员还是老老实实用 win10 吧. 对苹果没有好感.身边的朋友买的苹果 2 年后基本上一天冲 2-3 次电.动不动就百分之 1 电.