interface
interface是用来定义对象和函数的,起名时首字母大写。
1、定义对象
interface User {
name: string
age: number
}
const user: User = { name: '张三', age: 17 }
当你对对象定义了类型后,少写属性和多写属性都会报错。
你在使用这个对象时会有属性提示。
你可以定义可选属性和只读属性,可选属性你可以选择传或者不传,只读属性在修改时会报错。
interface User {
name: string
age: number
readonly id: number
childName?: string
}
const user: User = { name: '张三', age: 17, id: 1 }
user.age = 18
user.id = 2
user没有childName属性但是没有报错。
修改user的id属性会报错。
如果一个对象有多个不确定的属性,可以用自定义属性。
interface User {
name: string,
age: number
[propName: string]: any
}
const user: User = {
name: '张三',
age: 11,
id: 1,
children: []
}
2、定义函数
interface GetId {
(id: number): number
}
const getId: GetId = (id: number) => id