簡體   English   中英

打字稿:如何定義對象屬性的類型?

[英]typescript : how to define type for object property?

我的組件中有這個對象

它的屬性之一具有類型

interface IProduct {
  artikelname: string
  artikelnummer: string
  barccode: string
}

  form = {
    date: [],
    R2Os: [],
    type: 1,
    cats: null,
    selected_product: Array<IProduct>
  }

但我認為這種打字方式不正確

我有錯誤

在此處輸入圖片說明

那么,如何為Object Property定義類型

通常,您通過為整個對象定義一個類型(如您的IProduct ),並在聲明它時將該類型分配給引用該對象( form )的變量來實現。 例如:

interface FormType {
    date: Array<something>;
    R20s: Array<something>;
    type: number;
    cats: null | something;
    selected_product: Array<IProduct>;
}
// ...
const form: FormType = {
//        ^^^^^^^^^^−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− giving type to object
    date: [],
    R2Os: [],
    type: 1,
    cats: null,
    selected_product: [],
    //                ^^−−−−−−−−−−−−−−−−−−−−−−−−− value
};

但您也可以使用內聯類型斷言來做到這一點:

const form = {
    date: [],
    R2Os: [],
    type: 1,
    cats: null,
    //                vv−−−−−−−−−−−−−−−−−−−−−−−−− value
    selected_product: [] as Array<IProduct>,
    //                  ^^^^^^^^^^^^^^^^^^^−−−−−− type assertion
};

TypeScript 手冊值得從頭到尾閱讀。 它以非常簡潔的方式涵蓋了所有基礎知識。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM