typescript能否使用高階型別解決根據方法入參生成動態型別的問題?

時間 2021-06-02 20:30:17

1樓:HDDDDD

按我理解如果你的函式也有type,可以用infer 推斷出來的這篇文章可以學下ts比較深入的用法Typescript 高階語法高階

2樓:WuYang

export

type

PickPayload

,Type

>=Types

extends?P

:never

;const

ADD=

'ADD'

;const

CHAT

='CHAT'

;type

AddType

=typeof

ADD;

type

ChatType

=typeof

CHAT

;type

ActionTypes=|

|;type

PickStorePayload

=PickPayload

>;typeB=

PickPayload

,AddType

>// 實際上 AddType 命中

typeB=

|extends?P

:never

|extends?P

:never

;注意infer P的位置,被放在了payload的位置上,所以第一項的type在命中後, P也被自動推斷為了number,而三元運算子的 ? 後,我們正是返回了P,也就推斷出了number這個型別。

真的是非常有用的特性,當然也不是完全智慧型還是需要自己指定鉤子Type。

具體見原文:TypeScript高階實現智慧型別推導的簡化版Vuex · Issue #28 · sl1673495/blogs

高維度資料能否使用kmeans

Relu 高維空間中不建議直接使用kmeans聚類,因為在高維空間中樣本的分布範圍往往比較分散,這時再用樣本之間的距離來度量相似性往往不具有很強的說服力,常用的做法是先考慮使用PCA降維,然後再考慮聚類。 侯萌 不是高維資料能不能用kmeans的問題,是高維度資料在任何模型中都可能表現很差。你肯定聽...

TypeScript 使用的型別系統,相比傳統靜態語言有哪些優缺點?

張振衣 ST 比較解耦吧,只需要描述結構,拿著值就可以寫型別了,這一點在 ts 之於 js 是非常必要的。不然真的閉關乙個季度改型別,我需求別做了。還有另乙個角度,叫做如何看待同構 isomorphic 和相等 equal ST就認為同構只不過是名字不同,實際計算時相等的。而NT就認為名字不同的型別...

AMD Ryzen 上能否使用 Intel Math Kernel Library(MKL)

腹黑小太陽 效能方面的問題其它答主已經說了,最新的解決問題的方法是 設定 新建 乙個MKL DEBUG CPU TYPE的環境變數為5即可 也不知道是哪位想出來這種undocument的方法的 范逸 用ryzen 1700測試過,MKL是可以執行的,但是並行的效能有點糟糕。測試了兩個例子 第乙個是c...