这个问题通常发生在使用 TypeScript 时,当我们引入某个模块并尝试将一个接口传递给它,会提示“Argument of type
例如,假设我们有一个Foo
模块:
// Foo.ts
export default function Foo() {
console.log('Foo');
}
现在我们在另一个模块中想要将一个接口传递给 Foo
函数:
// App.ts
import Foo from './Foo';
interface Bar {
text: string;
}
Foo(Bar); // 错误提示:Argument of type 'Bar' is not assignable to parameter of type 'never'.
这里,我们会收到一个错误,告诉我们不能将接口 Bar
传递给 Foo
函数,因为它的参数类型是 never
。
要解决这个问题,我们需要将 Foo
函数的类型定义更改为允许任何参数类型:
// Foo.ts
export default function Foo(arg: any) {
console.log('Foo');
}
我们也可以将 arg
参数的类型设置为 unknown
或 any
:
// Foo.ts
export default function Foo(arg: unknown) {
console.log('Foo');
}
现在,在 App.ts
中,我们可以将 Bar
接口作为参数传递给 Foo
函数:
// App.ts
import Foo from './Foo';
interface Bar {
text: string;
}
Foo(Bar); // 运行正常,输出 "Foo"
这样就不会再出现“Argument of type
上一篇:ArgumentNullException: 值不能为空。参数名: connectionString
下一篇:Argumentoftype'Observable<Order[]>'isnotassignabletoparameteroftype'Observable<Order[]>[]'.