interface Cat {
name: string
}
const bobCat: Cat = {
name: 'Bob'
}
function printCat(cat: Cat) {
console.log(cat.name);
}
printCat.apply(bobCat)
这样直接通过 apply 调用
// 使用这种方式可以 在调用的时候使用 apply
function printCat(this: Cat) {
console.log(this.name);
}
来修正 apply 无法调用问题
唯一属性:
我们可以通过使用 symbol 来指定唯一属性
// 唯一属性
const PROD = Symbol('prod')
const DEV = Symbol('dev')
const obj = {
[DEV]: 'dev'
}
// 这里 model 可以使用 需要将 tsconfig.json 中的 lib、target 中 添加 ESnext 版本
function showWarning(msg: string, mode: typeof PROD | typeof DEV) {
console.log(mode.description);
}
showWarning('error', PROD)</