繁体   English   中英

正确输入 function object 参数 TypeScript

[英]Properly type function object argument TypeScript

我有一个 function 在代码setTouched({...touched, [name]: true }); 它接受 object。 name 属性是动态的,它可以是“email”、“password”或其他。 'touched' object 可以清空。 这是我的界面:

interface IInputFieldProps {
    setTouched: () => void;
}

目前它只是一个 function 什么都不返回。 我试过setTouched: ({[key: string]: boolean}) => void 看起来它不起作用。 如何使用 TypeScript 正确键入 object 作为 function 参数?

({[key: string]: boolean})不包含类型,而是无效的解构。 冒号右侧的类型必须为 go:

interface IInputFieldProps {
    setTouched: (data: {[key: string]: boolean}) => void;
}

反应 Typescript 'TFunctionDetailedResult 类型的参数<object> ' 不可分配给 react-i18next 类型的参数<div id="text_translate"><p>我的项目的很多地方都有这个代码片段。 在我升级所有包(包括react-scripts typescript和react-i18next )之前,这没有任何问题。</p><pre> import _get from 'lodash/get'; const { translate } = useLocales(); translate( _get(error, 'response.data.validationFailures.0.field'), _get(error, 'response.data.validationFailures.0.code') ),</pre><p> 我得到的错误是</p><blockquote><p> “TFunctionDetailedResult”类型的参数不可分配给“SnackbarMessage”类型的参数。</p></blockquote><p> 将_get(error, 'response.data.validationFailures.0.field') as String也无法解决问题。</p><p> 但是我之前也遇到过类似的问题,</p><pre> .required(translate('validations.organization.name', 'Organization name is required.'))</pre><p> 在这里我收到了这个错误信息</p><blockquote><p> “DefaultTFuncReturn”类型的参数不可分配给“Message<{}> | 类型的参数” 不明确的'。</p></blockquote><p> 我通过将此文件添加到项目中解决了错误</p><p> <strong>i18next.d.ts</strong></p><pre> import 'i18next'; declare module 'i18next' { interface CustomTypeOptions { returnNull: false; } }</pre><p> 问题是validations.organization.name会返回null 。 因此,在覆盖不返回null ,问题得到解决。 希望如果我声明_get方法总是返回一个字符串,错误就会修复。 我怎么做?</p><p> _get 方法也不会总是返回一个字符串。 它返回路径中的内容。 因此覆盖也不会是全局覆盖。</p></div></object>

[英]React Typescript Argument of type 'TFunctionDetailedResult<object>' is not assignable to parameter of type react-i18next

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 [Typescript]:如何键入通用 function 以接受更具体的 object 作为参数? function 的类型推断作为 Typescript 中的参数 Typescript:function,枚举类型的参数分配给回调,参数类型为字符串 什么打字稿类型用于函数参数? 打字稿:为箭头函数的对象参数定义类型 通过 typescript 中函数的可选参数返回不同的泛型类型 typescript 3.6 中的默认类型参数和默认参数 当 TypeScript 中的对象类型可能是不同的对象类型时,如何键入参数 反应 Typescript 'TFunctionDetailedResult 类型的参数<object> ' 不可分配给 react-i18next 类型的参数<div id="text_translate"><p>我的项目的很多地方都有这个代码片段。 在我升级所有包(包括react-scripts typescript和react-i18next )之前,这没有任何问题。</p><pre> import _get from 'lodash/get'; const { translate } = useLocales(); translate( _get(error, 'response.data.validationFailures.0.field'), _get(error, 'response.data.validationFailures.0.code') ),</pre><p> 我得到的错误是</p><blockquote><p> “TFunctionDetailedResult”类型的参数不可分配给“SnackbarMessage”类型的参数。</p></blockquote><p> 将_get(error, 'response.data.validationFailures.0.field') as String也无法解决问题。</p><p> 但是我之前也遇到过类似的问题,</p><pre> .required(translate('validations.organization.name', 'Organization name is required.'))</pre><p> 在这里我收到了这个错误信息</p><blockquote><p> “DefaultTFuncReturn”类型的参数不可分配给“Message<{}> | 类型的参数” 不明确的'。</p></blockquote><p> 我通过将此文件添加到项目中解决了错误</p><p> <strong>i18next.d.ts</strong></p><pre> import 'i18next'; declare module 'i18next' { interface CustomTypeOptions { returnNull: false; } }</pre><p> 问题是validations.organization.name会返回null 。 因此,在覆盖不返回null ,问题得到解决。 希望如果我声明_get方法总是返回一个字符串,错误就会修复。 我怎么做?</p><p> _get 方法也不会总是返回一个字符串。 它返回路径中的内容。 因此覆盖也不会是全局覆盖。</p></div></object> React Typescript - 类型参数不可分配给类型参数
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM