在TypeScript中传递对象变量与传递对象文字到函数

问题描述

在TypeScript中,如果我定义了一个接口MyInterface,例如:

interface MyInterface {
  a ?: string;
}

如果我定义一个函数myFunction,该函数仅接受类型为MyInterface的参数,例如:

function myFunction(parameter: MyInterface) {
  console.log("hello!")
}

如果我定义了一个对象myObject

let myObject = {
  a: "lol",b: "hi"
}

然后使用myFunction作为参数myObject调用myFunction(myObject),TypeScript没有错误

但是,如果我使用对象文字作为参数调用myFunction,并且其数据与myObject

myFunction({a: "lol",b: "hi"}) TypeScript出现以下错误

Argument of type '{ a: string; b: string; }' is not assignable to parameter of type 'MyInterface'.
  Object literal may only specify kNown properties,and 'b' does not exist in type 'MyInterface'.(2345)

当我使用对象变量调用myFunction时为什么没有出现此错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)