Am试图推断传入的对象的类型,并以此为基础进行一些逻辑处理。但是我无法传递传入的对象的type
。(换句话说,如果对象包含它们所有类型的键)。
这是我到目前为止尝试过的方法。请有人帮我推断类型。
在最坏的情况下,我将需要与每个类型方法一起编写帮助程序,以验证该类型所施加的密钥的存在。
例如:
type A = {
a: string;
};
type P = {
a: string;
c: string;
}
type C = {
c: string;
}
const unknownVariable1 = { a: "a" };
const unknownVariable2 = { a: "a", c : "c" };
const isTypeP = (x: any): x is P => true; //Doesn't work
const isTypeC = (x: any): boolean => { return x.c ? true: false; }. //Its okay to return true for object of type P.
// const isTypeP = (x: any): boolean => { return x.c && x.a ? true: false; } //Not a good idea, coz the type is huge list.
console.log(`isTypeP : ${isTypeP(unknownVariable1)}`);
console.log(`isTypeC : ${isTypeC(unknownVariable2)}`);
console.log(`${typeof unknownVariable1}`)
console.log(`${ unknownVariable1 as A}.`)