目錄
一、基本使用
二、interface重名、重合
三、任意key
四、interface的?
五、interface的readonly
六、interfacec的接口繼承
七、interface定義函數(shù)
一、基本使用
interface A {
name: string
age: number
}
let a:A = {
name: "鄭建",
age: 100
}
總結(jié):變量a這個對象必須有name和age這兩個屬性,并且他們的類型分別是string和number, 這都相當(dāng)與給變量a聲明了一個指定的類型A
二、interface重名、重合
interface A {
name: string
age: number
}
interface A {
ikun: string
}
let a:A = {
name: "鄭建",
age: 100,
ikun: '娘炮'
}
?總結(jié): 定義同名的interface變量它們會重合
三、任意key
interface A {
name: string
age: number
[propName: string]: any // (索引簽名) propName這個名字隨便起 類型是string 屬性值類型是any
}
let a:A = {
name: "鄭建", // 這個是必須的(強校驗)
age: 100, // 這個是必須的(強校驗)
a: 1, // 這個非必須 寫的時候也不會有校驗
b: 2, // 這個非必須 寫的時候也不會有校驗
}
總結(jié):有時候我們請求接口返回來的數(shù)據(jù)我們有時候只需要name和age,其他屬性我們有時候需要有時候不需要,但是太多屬性了,我又不想定義。
四、interface的?
interface A {
name: string
age?: number
}
let a:A = {
name: "鄭建",
age: 100, // 這個屬性可選的 不會報錯
}
總結(jié):在屬性后面加上?表示這個屬性可選的,都不會報錯
五、interface的readonly
interface A {
readonly id: number
name: string
age: number
}
let a:A = {
id: 1, // id不可修改
name: "鄭建",
age: 100,
}
總結(jié):用readonly聲明過的? 它就不可修改, 通常用于接口返回來的數(shù)據(jù)id屬性,id是不可修改的文章來源:http://www.zghlxwxcb.cn/news/detail-492912.html
六、interfacec的接口繼承
interface A extends b {
name: string
age: number
}
interface B {
ikun: string
}
let a:A = {
name: "鄭建",
age: 100,
ikun: '娘炮',
}
總結(jié): 跟重疊差不多, 可以繼承多個文章來源地址http://www.zghlxwxcb.cn/news/detail-492912.html
七、interface定義函數(shù)
interface Fn {
(name: string): number[] // 定義了一個參數(shù)為string類型,返回為number[]的一個函數(shù)
}
const fn: Fn = function(name: string) {
return [1]
}
到了這里,關(guān)于TypeScript的interface的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!