在不传递对象的情况下是否可以使用此伪代码?
interface IArgs {
name: string;
age: number
}
function getInfo<T>(...T) {
return ...;
}
getInfo<IArgs>("Bob", 50); // OK
getInfo<IArgs>("Bob"); // Error: parameter "age" is missing
答案 0 :(得分:0)
我不认为...T
可以使用类型检查控件。为什么你不使用简单:
function getInfo<T>(args: T[]) // if you need to pass an array
{
return null;
}
或
function getInfo<T>(arg: T) // for just simple argument
{
return null;
}
然后您将收到正确的编译时验证消息,例如:
getInfo<IArgs>({ name: "Bob" }); // Error: property "age" is missing
答案 1 :(得分:0)
也许用这种方式声明你的界面:
interface IArgs {
name: string;
age?: number;
}
?
使该属性可选。