interface的作用
- 描述对象的形状
- 对类的一部分行为进行抽象
下面的文章主要围绕着上面的两部分进行讲解。
一、描述对象的形状
注意:下面的interface之间的元素是通过分号进行分割的。interface 后面跟的名字大小写都可以。
interface person { name: string; music: string; } let person: person = { name: 'justin', music: 'test' } 复制代码
- 通过interface定义的对象,属性的个数不可多页不可少,如果非要少的话,可以采取下面的这种形式。可选属性
interface person { name: string; music?: string; } let person: person = { name: 'justin', } 复制代码
- 通过interface定义的对象,如果想出现自由属性,可以通过下面的这种方式。
interface person { name: string; music?: string; [propName: string]: any; } let person: person = { name: 'justin', sex: 'fox' } 复制代码
- 通过readonly定义只读属性
interface person { readonly id: number; name: string; music?: string; [propName: string]: any; } let person: person = { id: 123456, name: 'justin', sex: 'fox' } person.id = 666; // 此处会报错