在接口中定义方法有两种方法。
- 声明为类型为函数的属性
interface Logger {
log: (message: string) => void
}
- 声明为正常函数
interface Logger {
log(message: string): void
}
区别
如果将该方法声明为接口函数,则可以添加更多重载版本。
interface Logger {
log(message: string): void
}
// 在其他地方
interface Logger {
log(message: string, level: string): void
}
另一方面,将方法声明为属性可以防止复制具有不同类型的属性声明:
interface Logger {
log: (message: string) => void
}
// 不起作用
interface Logger {
log: (message: string, level: string) => void
}
readonly
修饰符仅对属性声明有效。
interface Person {
firstName: string
lastName: string
readonly fullName: () => st