我有以下代碼:
type callbackType = <T>(d: T) => void;
const callbackTest = <T>(val: T, callback: callbackType) => {
callback(val);
};
callbackTest("Hey", isAString => isAString)
在這里,我希望 Typescript 推斷出isAString具有 type string,但它沒有。
如果我callbackType像這樣行內:
const callbackTest = <T>(val: T, callback: (d: T) => void) => {
callback(val);
};
callbackTest("Hey", isAString => isAString)
Typescript 可以推斷出isAString具有 type string。
<T>我嘗試在后面添加一個callbackType(callback: callbackType<T>),但這似乎不是有效的打字稿并給出以下錯誤:Type 'callbackType' is not generic.
在我的真實代碼callbackType 中是一個更復雜的函式,我多次使用它,因此行內它并不理想。
有什么想法可以幫助 Typescript 找出 的型別isAString嗎?
uj5u.com熱心網友回復:
將泛型從函式移至型別:
type callbackType<T> = (d: T) => void;
然后您可以T像最初嘗試的那樣傳遞給型別:
const callbackTest = <T>(val: T, callback: callbackType<T>) => {
callback(val);
};
callbackTest("Hey", isAString => isAString);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/479139.html
