welcome to my blog,nya~!
Meow!
Is the Order a Kitty?
things i love:
- sleeping
- poop
Meow!
Is the Order a Kitty?
anyany类型可以用来表示任何类型,但是它会让typescript失去类型检查的作用,所以尽量避免使用any类型。
unknownunknown类型与any类型类似,它可以被赋值给任何类型,但是它不能被赋值给任何类型,也不能进行属性访问,除非使用类型断言。
never主动使用never的两种情况
函数返回值类型为never,函数会抛出错误,或者进入死循环
function fn(): never {
throw new Error("error");
}
类型收窄
function fn(x: string | number) {
if (typeof x === "string") {
x.charAt(0);
} else if (typeof x === "number") {
x.toFixed(2);
} else {
const check: never = x;
throw new Error(`unknown type: ${check}`)
}
}
类型断言的正确使用方式,在TypeScript类型分析不正确或不符合预期时,将其断言为此处的正确类型。基本语法是as NewType,也可以使用<NewType>。
!非空断言,用于确定某个值不为null或undefined。
const el = document.getElementById("app")!;
这里引入一个类型层级的概念, 其中
any/unknown是Top Type,never是Bottom Type。