1.接口
(1) ? ----- 可选属性
(2) readonly ----- 只读属性(只能在对象刚刚创建的时候修改其值)
interface Config {
width: number,
height: number,
color? : string,
readonly name: string
}
let config: Config = {width: 20, height: 30, color: "black", name: 'mySquare'}
// config.name = 'mySquare2'; // error!
function createSquare(config: Config): {color: string; area: number} {
let newSquare = {color: "white", area: 100};
// 可选属性使用
if (config.color) {
newSquare.color = config.color;
}
if (config.width && config.height) {
newSquare.area = config.width * config.height;
}
return newSquare;
}
let mySquare = createSquare(config);
2. 实现接口
(1) 接口方法 -----