我有我想用作型別的物件:
interface MyInput {
id: string,
label: string,
setter: Function,
type: string,
value: string | string[] | boolean,
options?: string[]
}
我有一些錯誤,例如: “字串”型別上不存在屬性“地圖”| 布林值 | 細繩[]'。 鍵入'字串 | 布林值 | string[]' 不可分配給型別 'boolean | 不明確的'。
問題是我將始終知道我的值是字串 []、布林值還是帶有型別屬性的字串。
是否有任何解決方案可以在不創建 3 個不同界面的情況下消除這些錯誤?
除了將我的 value 屬性用于任何或創建 3 種不同型別之外,我不知道。
uj5u.com熱心網友回復:
您可以使用泛型型別定義介面,如下面的代碼所示
interface MyInput<T = string | string[] | boolean> {
id?: string,
label?: string,
setter?: Function,
type?: string,
value: T,
options?: string[]
}
實際型別可以在定義變數時確定,如下面的代碼
let ip: MyInput<string[]> = {
value: []
}
ip.value.map((v) => {...})
uj5u.com熱心網友回復:
您需要做一些事情來投射它或用@ts-ignore
. 例如
(input.value as string[]).map(...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/522082.html