typescript - TS 中的函数签名确实允许附加属性
问题描述
我认为我的问题很简单。
为什么第一个示例 ( func
) 没有在 TS 中中断?有没有简单的解释或一些文档可以参考我?
我声明了一个类型签名,IFunc
它基本上都实现了。为什么允许我使用其他属性扩展返回值?编译器当然会验证并且存在,但它不会抱怨我添加了另一个属性,尽管没有定义这样的属性。func
func2
func
prop1
prop2
prop3
ISome
在第二个示例 ( func2
) 中,当设置了返回类型时,编译器会抱怨这一点ISome
。
我注意到第一个示例中的 lambda 函数和第二个示例中的函数声明之间的区别,这是解释的一部分吗?这是Playground中的代码。
interface ISome {
prop1: string;
prop2: number;
}
type IFunc = () => ISome;
export const func: IFunc = () => {
return { prop1: '1', prop2: 33, prop3: true };
};
export function func2(): ISome {
return { prop1: '1', prop2: 33, prop3: true };
}
解决方案
推荐阅读
- c# - C#,如果另一个方法返回 true,则启动方法
- forms - I have this code, when submited the form dont refresh, someone know how refresh after submit on october cms?
- python - SWIG 和 Boost::variant
- bash - 使用 find 查找与带有可选组的正则表达式匹配的文件夹
- ios - 网络请求延迟
- c - 反向打印的数组元素
- prestashop - Prestashop PHP 导入自定义值功能
- php - 如果为空,则重定向用户以填充属性
- powershell - 在 Write-Host 中间运行命令
- c++ - Segmentation fault in SFML when i try to draw an sf::Text object