We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
unique symbol :unique symbol 是 symbol 的子类型,可以通过调用 Symbol() 、 Symbol.for() 或者显式类型声明来生成 unique symbol 类型的值,unique symbol 只可用于常量声明和只读静态属性上,一般使用 const 申明
unique symbol
declare const $CombinedState: unique symbol interface EmptyObject { readonly [$CombinedState]?: undefined }
在 redux 中 看到了这样的ts 类型很好奇
它主要是一个判断作用 空对象中是不存在 symbol 类型的 并且 symbol 是可以修改的而且应该有值 那么这里就明白了
当我们去定义了一个对象 去和 EmptyObject 对比时除了空对象其他都不行,为什么?
因为空对象是 EmptyObject 对象的父类型,且 EmptyObject 非常特殊它具备了对象属性理应不存在的特征以至于和其他有属性的对象相比时没有共同属性这就说明这个不是空对象
EmptyObject 的作用是判断是否是空对象的
这里使用到了这样的方式
type isBoolean<T extends any> = T extends EmptyObject ? true : false
当传入的存在 symbol 属性时候就会返回 false 例子
The text was updated successfully, but these errors were encountered:
No branches or pull requests
unique symbol
:unique symbol 是 symbol 的子类型,可以通过调用 Symbol() 、 Symbol.for() 或者显式类型声明来生成 unique symbol 类型的值,unique symbol 只可用于常量声明和只读静态属性上,一般使用 const 申明在 redux 中 看到了这样的ts 类型很好奇
它主要是一个判断作用 空对象中是不存在 symbol 类型的 并且 symbol 是可以修改的而且应该有值 那么这里就明白了
当我们去定义了一个对象 去和 EmptyObject 对比时除了空对象其他都不行,为什么?
因为空对象是 EmptyObject 对象的父类型,且 EmptyObject 非常特殊它具备了对象属性理应不存在的特征以至于和其他有属性的对象相比时没有共同属性这就说明这个不是空对象
EmptyObject 的作用是判断是否是空对象的
这里使用到了这样的方式
当传入的存在 symbol 属性时候就会返回 false
例子
The text was updated successfully, but these errors were encountered: