any是放弃全部的类型检查

unknown

unknown类型是放弃一层类型检查,但还是会在程序可能导致崩溃的error代码上给出错误提示。
https://www.typescriptlang.org/play?#code/DYUwLgBATghgdgEwPYFsBqNgC4IFc4DWcSA7nBALwQBstA3AFAOyKobCURhS4jPzJ0mTgCIAzhIkj+rIRyoBvAL5MWg9gDowSAMrcAlnADmACgCUDfQDMTYAJ4AHEEivQBbYRS8QA5HFwoAEYgUD5mCgwQbrKa2npQhqYWKjLqmOaWNvZOLtFp8t4+VvgAxmD6SHBhEVFqHsAZSkA
image.png

  1. let randomVal: unknown = 666;
  2. randomVal = true
  3. randomVal = "sssss"
  4. randomVal = {}
  5. randomVal.toString()
  6. if(typeof randomVal === 'number'){
  7. randomVal.toString()
  8. }
  9. randomVal()
  10. if(typeof randomVal === 'function'){
  11. randomVal()
  12. }