当前位置: 首页 > 知识库问答 >
问题:

typescript - toRef 的第二个参数的类型是 never?

高朝明
2023-09-30
    (alias) toRef<{}, never>(object: {}, key: never): never (+2 overloads)

在编写代码时候发现 toRef 无法传入第二个参数,因为 key 类型被指定成了 never
我在vue官网上没发现有这个定义。。不太确定哪里出现了问题。

共有1个答案

潘弘壮
2023-09-30

你这行签名是从 vscode 悬浮框里复制的吧?

其实它是这样的:

export declare function toRef<T>(value: T): T extends () => infer R ? Readonly<Ref<R>> : T extends Ref ? T : Ref<UnwrapRef<T>>;export declare function toRef<T extends object, K extends keyof T>(object: T, key: K): ToRef<T[K]>;export declare function toRef<T extends object, K extends keyof T>(object: T, key: K, defaultValue: T[K]): ToRef<Exclude<T[K], undefined>>;

你应该是写了 toRef<{}, >,那么 T 现在是 {} 了,而 K 要满足 keyof T 的约束,{} 没有键,那自然就是 never

 类似资料:
  • 问题内容: 什么是参数: 如果我这样做: 并具有两个Localizable.strings版本(英语和西班牙语),每个版本是否都需要输入: 英语难道不是多余的吗? 问题答案: 注释字符串被应用程序忽略。它用于翻译者的利益,可在您的应用程序中找到的键的上下文用法中添加含义。 例如,键在给定语言中的取值可能不同,具体取决于该短语在该语言中需要使用的正式或非正式程度(“ Whats up World”,

  • 为了理解TypeScript的精神,我在我的组件和服务中编写了全类型签名,这扩展到了angular2表单的自定义验证函数。 我知道我可以重载函数签名,但这需要每个返回类型的参数不同,因为将每个签名编译为单独的函数: 我还知道我可以返回单个类型(如Promise),它本身可以是多个子类型: 但是,在angular2自定义表单验证器的上下文中,单个签名(一个类型为的参数)可以返回两种不同的类型:带有表

  • 在TypeScript中,我可以将函数的一个参数声明为类型函数。是否有一种“类型安全”的方式来完成这件事,而这是我所缺少的?例如,考虑以下内容: save回调不是类型安全的,我给它一个回调函数,其中函数的参数是一个字符串,但我传递给它一个数字,并且编译时没有错误。我可以在保存类型安全函数中设置结果参数吗? TL;DR版本:在TypeScript中是否存在与.NET委托等价物?

  • 本文向大家介绍TypeScript 类型参数作为约束,包括了TypeScript 类型参数作为约束的使用技巧和注意事项,需要的朋友参考一下 示例 使用TypeScript 1.8,类型参数约束可以从同一类型参数列表中引用类型参数。以前这是一个错误。            

  • 代码是: 我得到以下TS错误: "[ts]类型"string"的参数不能分配给类型"ever"的参数。" 我做错了什么?这是虫子吗?

  • 数据类型是由相互关联的值构成的集合。各种数据类型互相联系,而且它们通常是具有层次关系。Scheme拥有丰富的数据类型:有一些是简单的类型,还有一些复合类型由其它的类型组合而成。 2.1 简单数据类型 Scheme中的简单包含 booleans (布尔类型) , number(数字类型), characters(字符类型) 和 symbols(标识符类型)。 2.1.1 Booleans Schem